0

Como criar um servidor de Minecraft, na Azure, usando Docker ? Moleza! - Por Andre Racz, Dir. de arquitetura da Avanade.

Pedro Silva
Pedro Silva

Rodando um servidor de minecraft no Azure


Para inaugurar o meu blog aqui no dev.to, decidi escrever um artigo mais leve, unindo duas grandes paixões: Minecraft e Containers!

Eu comecei a jogar Minecraft ainda na versão beta, em 2010, por indicação do meu amigo Thiago Duarte. Na época joguei um pouco, mas acabei perdendo o interesse. Na época paguei 5 dólares pela licença.

Com a pandemia, e buscando atividades para fazer com meu filho, lembrei que tinha conta no Minecraft, e começamos a jogar em familia, eu, ele e minha esposa, mas sempre tinhamos o problema de quem ia rodar o servidor, acabava que alguém sempre um de nós tinha que deixar o servidor aberto no computador, mesmo que não quisesse jogar.

Para resolver isso, resolvi subir um servidor de Minecraft na Azure, aproveitando o benefício de ser MCT (Microsoft Certified Trainer) e ter alguns créditos todos os meses.

Inicialmente, subi o servidor em uma VM, baixando localmente o servidor, o Java e rodando tudo manual, mas o processo é muito lento e manual, então, sendo um grande fã de containers, fui correr atrás de como rodar ele em containers. Por sorte, temos uma ótima imagem docker para rodar um servidor de minecraft, com todas as opções possíveis, que pode ser visto neste excelente repositório do github: itzg/docker-minecraft-server

Esse container permite rodar o servidor de minecraft com poucas configurações, e é fácil rodar a versão tradicional (vanilla), assim como várias opções com mods.

Inicialmente, aproveitei a VM que tinha, instalei o docker e comecei a rodar lá o container, mas sempre ficou a idéia de como rodar ele no Azure Container Instances (ACI). Como não achei nenhum tutorial fácil de como fazer isso, resolvi escrever esse artigo, e aproveitei para aprender um pouco sobre o bicep, nova linguagem para fazer o deploy na Azure.

Para rodar o servidor do minecraft no ACI, e manter os dados salvos quando baixamos ele, precisamos de 2 recursos, um Container Group que vai rodar o servidor e uma Storage Account, que vai guardar os arquivos entre as paradas do servidor.

O primeiro recurso que temos é a storage account, onde declaramos apenas o tipo, localidade, nome e SKU (desculpem pela falta de syntax highlight, o dev.to não suporta ainda a linguagem bicep):

Além disso, precisamos declarar um storage share (compartilhamento do Azure Files), que será anexado ao container. Esse share depende da storage account, e declara o nome do share apenas:

Por fim declaramos o ContainerGroup, ele depende do storage share, declara um container e liga o storage share nele, além de colocar algumas variáveis de ambiente mais comuns:

Pronto, depois disso é só compilar o bicep e transformá-lo em ARM template, e de posse do ARM, importar ele como template na Azure.

Se você preferir usar um ARM pronto, é só clicar nesse botão, preencher as variáveis e fazer o deploy:

Depois de terminado o deploy, entre no recurso criado, obtenha o FQDN:

image

Acesse no modo multiplayer do minecraft, em Add Server, digite o nome e a URL do seu servidor, clique em Done:

Pronto, seu server está pronto para iniciar. Happy Mining!


Não esqueça de parar o servidor quando não estiver usando, para não gastar seus créditos!

Deixo aqui também o link pro github que criei com esse projeto, já com parâmetros para facilitar a nossa vida: andreracz/minecraft-on-azure.


0
0

Comentários (1)

1
Samuel Costa

Samuel Costa

02/09/2021 18:55

cara teu artigo me ajudou a insistir em aprender docker da mesma forma q eu insisti pra encontrar diamante

Systems Analysis and Development Student C# | .NET | Azure | SQL

Brasil