Uma implantação Docker precisa de dados de servidor persistentes, exposição de porta deliberada e um par imagem/configuração recuperável. O exemplo abaixo usa a imagem spritsail mantida pela comunidade em um host Linux; seus caminhos e variáveis de ambiente são específicos para essa imagem, não opções universais do FXServer.
A configuração e os exemplos de código aqui são voltados ao FiveM para GTA V Legacy. O Enhanced tem regras diferentes de runtime e de compatibilidade; verifique as alterações de Legacy para Enhanced do Cfx.re antes de aplicá-las a um servidor Enhanced.
Prepare o host
Instale o Docker Engine e o plugin Compose usando as instruções do Docker para seu host. Use uma implantação de teste isolada primeiro. Confirme se a arquitetura do host, as portas disponíveis e a versão da imagem se adequam ao seu servidor pretendido.
Crie um diretório privado de projeto com os subdiretórios data/ e txData/. A imagem usa /config para os dados do servidor e /txData para o txAdmin. Restrinja o acesso aos diretórios do host e aos backups, pois eles conterão credenciais.
Crie o compose.yaml
Salve isto como compose.yaml nesse diretório do projeto. Ele deixa a configuração da licença para a configuração protegida do txAdmin/servidor e vincula a porta de administração ao loopback do host.
services:
fivem:
image: spritsail/fivem:stable
environment:
NO_DEFAULT_CONFIG: "1"
NO_LICENSE_KEY: "1"
volumes:
- ./data:/config
- ./txData:/txData
ports:
- "30120:30120/tcp"
- "30120:30120/udp"
- "127.0.0.1:40120:40120/tcp"
stdin_open: true
tty: true
restart: unless-stopped
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
A tag stable da imagem é mutável e segue a definição do mantenedor da imagem de origem. Leia as informações da versão e o código-fonte antes de implantar; não trate a palavra “stable” como uma garantia comprovada por testes. Após testar, substitua a referência da imagem pelo digest exato da imagem baixada que você registrou.
Inicie e configure o txAdmin
No diretório do projeto no host Docker, execute:
docker compose config --quiet
docker compose pull
docker compose up -d
docker compose logs --tail=100 fivem
Acesse o txAdmin localmente em http://127.0.0.1:40120. Na sua estação de trabalho, crie um túnel SSH para o seu host real usando ssh -L 40120:127.0.0.1:40120 user@your-server, depois abra esse mesmo endereço local no navegador. Use sua conta e o nome real do host SSH. Não publique PINs de configuração nem saídas de log com credenciais.
Siga a configuração do txAdmin e escolha um local de dados do servidor dentro de /config, ou outro diretório persistente montado explicitamente. Insira a licença válida do servidor de forma privada. Se a receita escolhida exigir um banco de dados, configure-o separadamente e mantenha a porta dele privada; este exemplo de Compose não inclui um.
Verifique a rede e a persistência
Permita o endpoint do jogador pretendido através da rede do host/provedor para TCP e UDP. Verifique o acesso de fora do host. As portas publicadas pelo Docker interagem com as regras de firewall do Docker e podem ignorar as regras de entrada UFW comuns; consulte a documentação do firewall do Docker em vez de colar um conjunto de regras de firewall de substituição.
Conclua um teste de conexão, inspecione erros de recursos e crie uma alteração de configuração inofensiva. Recrie o contêiner com docker compose up -d --force-recreate e confirme que o perfil e a configuração persistem. Uma resposta HTTP de info.json é apenas uma verificação básica de disponibilidade, não uma prova de que a jogabilidade funciona corretamente.
Faça backup de um conjunto consistente
Agende a manutenção e interrompa as gravações de jogabilidade. Faça backup dos diretórios montados, da definição do Compose, da configuração privada e de qualquer banco de dados externo como um conjunto de recuperação correspondente. Para dados apenas de arquivo enquanto o serviço está parado, um arquivo privado do diretório do projeto pode ser criado com:
umask 077
docker compose stop fivem
tar -czf "../fivem-files-$(date -u +%Y%m%dT%H%M%SZ).tgz" compose.yaml data txData
docker compose start fivem
Verifique se a criação do arquivo foi bem-sucedida antes de reiniciar como parte do seu manual de operações. Inclua arquivos de configuração adicionais e o backup do banco de dados quando sua configuração os utilizar. Um arquivo de arquivos sozinho não pode restaurar um banco de dados externo. Teste a recuperação em diretórios separados e um banco de dados separado.
Atualize e recupere
Registre o digest da imagem atualmente em execução e faça o backup correspondente antes de puxar uma atualização. Teste a imagem candidata em uma cópia, depois altere a referência da imagem de produção durante a manutenção e repita as verificações de conexão/persistência.
Reverter apenas a imagem pode não desfazer as migrações de dados realizadas pelos recursos. Recupere os arquivos/dados correspondentes deliberadamente e contabilize as gravações desde o backup. docker compose down para e remove o serviço, preservando esses diretórios montados por bind; mantenha-os até não precisar mais deles para recuperação.
Documentação de referência
Fonte: spritsail/fivem · Fonte: docs.docker.com · Cfx.re — txAdmin