Ir para conteúdo
  • Cadastre-se

Novidade, docker no uso da criação de otservs


Posts Recomendados

 

Olá, tudo bem?

Quem nunca começou a montar seu servidor e teve problemas na hora de compilar? Pelo menos no que se diz em relação ao linux, por possuir vários sabores (distros-distribuições), eu tive, você vê um tutorial, seguia passo a passo e na hora que você executava dava errado, é... comigo também aconteceu. Só que pensando na comunidade descobri algumas técnicas de como resolver isso e decidi trazer e agregar o conhecimento à comunidade.

Eu venho falar sobre o docker, falar sobre o surgimento e com profundidade sobre ele ocuparia espaço por demais, mas a documentação é bem explicativa. Como funciona, é uma forma de virtualização, é possível criar a imagem de um, por ex., debian 8, dentro de um centOS 7. Mas isso já não é possível? Eu diria que não, pois o que se tem é a criação de uma maquina virtual e não só apenas a imagem do S.O. que se deseja utilizar. Essa imagem terá libs e binários próprios, só que compartilhará o mesmo kernel da sua máquina, sendo possível você ter uma maquina x e usar uma container y para compilar seu ot, e outra para deixar se site online, e outro ainda, para gerenciar seu banco de dados.

Gosto muito de uma frase que ouvi, comparando o docker e VM com animais de estimação e bóis. Suas VMs são como bichinhos de estimação, pois você tem todo um zelo com ela, se da problema você cuida, perde tempo, e gasta se for possível para reparar. Porém o boi não, se ficar doente você descarta e pega outro, se não está servindo mais você não vai perder tanto tempo, isso é o docker, pois são extremamente fáceis de subir, sendo possível subi-los com apenas uma linha de comando, e com tudo o que você precisa, prontos só para compilar, sem necessidade de baixar as libs. Pode-se usar ainda de uma tecnologia que acompanha o docker, que é o docker-compose. Este ficará em um próximo tuto.

Com o docker há um melhor gerenciamento de consumo de recursos de sua máquina (tanto virtual quanto física), pois, imagine que você recebe a tarefa de executar várias funções ao mesmo tempo, mesmo tempo várias ferramentas que te auxiliem, ainda sim, você será sobrecarregado, agora situação diferente, é quando as tarefas delegadas a você são divididas em mais pessoas, com as mesmas ferramentas. E outra coisa, é pelo fato de que se você quiser excluir uma aplicação da sua máquina é só desinstalar o docker, sem o risco de ainda ficar pacotes em sua máquina.

Mas eu acredito ser a maior vantagem, é a automatização, por meio de dockerfile, ou docker-composes. Onde eu escrevo como será executada a função e o que ela vai criar, e qualquer pessoa pode pegar esse meu documento e com uma linha de comando abrir a imagem que foi criada por mim ou qualquer outra pessoa. Vou mostra como pode ser um esqueleto simples de uma dockerfiler:

FROM debian:8

RUN apt-get update && apt-get -y upgrade && apt-get install -y mais as libs para compilar.

Com isto e  o comando docker build -t nomedaimagem e ponsto . com espaço. Parecido com makefile né? Eu penso que sim.

Você vai criar uma máquina com essas características, fácil não? Não, então assista ao meu video. 

Vai acabar aquela história de que na minha máquina não funcionou, help-me please. Em relação a compilar.

Pessoal comandos a serem executados estarão no video, beleza? O tuto, já está longo por demais e lá já estão expostos. E mostrando como são utilizados. Não esqueçam de deixa seu like e inscreverem-se em meu canal, há, claro, não esqueçam de dar um rep+ aí se gostaram.

Falou, até a próxima, e desculpa pelo tamanho do texto, mas como se trata de algo novo, não achei legal colocar em poucas linha sem explicar sua utilidade. E também por ser um assunto tão rico, ahhh, quase já ia me esquecendo, essa tecnologia não é exclusividade do linux, podendo ser usada no windos e MacOs, tem que ser 64bit. Vocês podem criar maquinas Debian 8, por ex., em seu windows e conectá-las por uma simples particula na linha de comando de criação do container.

Ufa, agora já é tudo o que me cabia aqui, voltarei com maiores explicações.

Se foi postado em lugar indevido, peço que mande para o lugar certo.

Link para o post
Compartilhar em outros sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord:

Link para o post
Compartilhar em outros sites

Achei interessante o assunto, muito obrigado por disseminar o conhecimento e com certeza vou estar utilizando o docker no futuro próximo. A respeito do tópico, eu achei que ficou muito confuso tanto o vídeo quanto a formatação do texto.

REP +

Link para o post
Compartilhar em outros sites
51 minutos atrás, Werner disse:

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

26 minutos atrás, Ments disse:

Achei interessante o assunto, muito obrigado por disseminar o conhecimento e com certeza vou estar utilizando o docker no futuro próximo. A respeito do tópico, eu achei que ficou muito confuso tanto o vídeo quanto a formatação do texto.

REP +

 

 

kkkk, faz parte, para quem não está familiarizado com o docker, a princípio fica meio abstrato mesmo o contexto de uso, Até mesmo pelas terminologias, que podem ser dokcer, container, imagem. E as suas característias, mas eu vou trazer alguns videos explicando melhor, este primeiro video foi para apresentar as possibilidades. Se fosse descarregar tudo de uma vez ia ficar um video muito grande, e correria o risco de ficar, por demais, incompleto. Mas valeu pela critica.

 

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
  • 4 weeks later...

A ideia é já deixar todo o ambiente preparado, estou testando um, onde o ot ficar na imagem do debian 8, toda pronta com as lib já instaladas, só descarregar o ot e compilar, o mysql, php, ngnixz fiquem no Alpine, por ser muito leve e o phpmyadmin no CentOS. Eu testei e o resultado foi bom. Só tenho que corrigir uma coisa que não gostei, e o bacana é que depois com uma linha só de comando, coloco tudo para rodar novamente.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por marcoshps11
      Neste tutorial, irei ensinar configurar o Docker no windows e rodar seu otserver
       
       
      - Diferença entre Docker x Máquina virtual:
        Docker e Máquinas Virtuais (VMs) ambas são fundamentais usadas para isolar recursos em um sistema de computação, mas funcionam de maneiras muito diferentes.
       
        VMs são ambientes de computação completos, incluindo um sistema operacional (SO) completo, que simulam o hardware de um computador físico. Isso significa que cada VM é um sistema autônomo e independente.   Já o Docker, usa a tecnologia de contêineres. Os contêineres compartilham o mesmo sistema operacional do host, mas mantêm seu próprio espaço de processo, arquivos e rede. Isso significa que eles são muito mais leves do que as VMs, pois não precisam de um SO completo, e podem ser iniciados e parados muito mais rapidamente.
      - Vantagens em utilizar o Docker
       O Docker oferece várias vantagens significativas:
      Eficiência de recursos: Como os contêineres Docker compartilham o SO do host, eles são mais leves e usam menos recursos do que as VMs. Portabilidade: O Docker permite que você "construa uma vez, execute em qualquer lugar". Uma vez criado um contêiner Docker, ele pode ser executado em qualquer sistema que suporte o Docker, independentemente das configurações subjacentes. Isolamento: Cada contêiner Docker é isolado do resto do sistema, o que ajuda a evitar conflitos entre diferentes aplicações e versões de software. Integração e entrega contínua: O Docker se integra bem com ferramentas de CI/CD (Integração Contínua / Entrega Contínua), permitindo a automatização de testes e implantação de aplicações. Escalabilidade e Orquestração: O Docker facilita a escalabilidade de aplicações, permitindo que múltiplos contêineres sejam implantados facilmente. Além disso, com ferramentas como Docker Swarm e Kubernetes, a orquestração de contêineres se torna eficiente e gerenciável  
       
      Colocando a mão na massa
       
      Este tutorial será dividido nas seguintes etapas:
      Preparação do Windows Instalando o Docker Instalando imagens mariadb e phpmyadmin Realizando a build da imagem TFS  
      1º PASSO:  Preparando o Windows com o subsistema Linux.
       
      AVISO: Essa Etapa será necessária somente caso ainda não possua o subsistema Linux ativado em seu windows
       
      Os comandos a seguir, serão todos utilizando o POWERSHELL do windows, na barra de pesquisa digite POWERSHELL e execute como administrador.
       

       
      Com o POWERSHELL aberto, execute os seguintes comandos:
       
      Habilitando subsistema Linux:
        dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart  
       
      Habilitando recurso de máquina virtual: dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart  
      Baixe e instale Kernel do Linux:  
      https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
       
      Após essa etapa, será necessário reiniciar o computador para atualização, após reiniciar, abra novamente o PowerShell
       
      Definindo o WSL 2 como padrão: wsl --set-default-version 2  
       
      Após esses passos, basta entrar na Microsoft Store e instalar o sistema Ubuntu:


       
      Após a instalação, abra o Ubuntu, como será a primeira vez, irá solicitar para que digite um nome de usuário e uma senha.

       
       
       
      Etapa 1 concluída.
       
      Fonte: https://learn.microsoft.com/pt-br/windows/wsl/install-manual
       
      2º PASSO:  Instalando Docker.
       
      este é um passo simples, apenas entre no site oficial do Docker, baixe e instale o Docker Desktop

      https://www.docker.com/
       

       
       
      Etapa 2 concluída.
       
       
      3º PASSO:  Instalando imagens MariaDB e phpMyAdmin
       
       Assim como no passo 1, execute novamente o PowerShell como administrador e siga os seguintes passos:
       
      Primeiro vamos baixar as imagens necessárias, execute os seguintes comandos: docker pull mariadb  
      docker pull phpmyadmin/phpmyadmin  
       
      Agora iremos criar uma "Rede" para que o docker se comunique entre os containers que iremos utilizar. Execute o seguinte comando:  
      docker network create mynetwork  
        mynetwork é o nome que defini neste caso, você pode utilizar o nome que achar melhor, porém lembre-se desse nome que iremos utilizar nos próximos passos.
       
      Agora iremos iniciar essas imagens, utilizando os seguintes comandos:  
      docker run --name mariadb --network=mynetwork -e MYSQL_ROOT_PASSWORD=your_password -d mariadb  
      your_password = altere pela senha que deseja utilizar no mysql
      mynetwork = é o nome que criamos no passo anterior
       
      docker run --name myadmin --network=mynetwork --link mariadb:db -d -p 8080:80 phpmyadmin/phpmyadmin  
      Lembrando novamente, mynetwork é o nome criado anteriormente
       
      Após esses passos, será possível ver seu container rodando no Docker Desktop:

       
      Etapa 3 concluída.
       
      4º PASSO:  Gerando Imagem do TFS e configurações necessárias:

       
      Baixe a TFS, nesse exemplo será o repositório oficial https://github.com/otland/forgottenserver Extraia os arquivos após baixar com o container mariadb e phpmyadmin rodando, acesse http://localhost:8080/  com o login root, e a senha que criou no passo 3, crie uma nova base de dados e importe o arquivo schema.sql do servidor edite o arquivo config.lua.dist
       -- MySQL
      mysqlHost = "mariadb"
      mysqlUser = "root"
      mysqlPass = "SUA SENHA CRIADO NO PASSO 3"
      mysqlDatabase = "NOME DA DATABASE"
      mysqlPort = 3306
      mysqlSock = ""

      mariadb é o nome do container que estamos rodando o mysql  
       
      ** Caso queira utilizar todo potencial do seu computador na hora de buildar a TFS, no arquivo Dockerfile, edite a linha 18:
      RUN cmake --preset default && cmake --build --config RelWithDebInfo --preset default para
       
      RUN cmake --preset default && cmake --build --config RelWithDebInfo --preset default -- -j 16  
      onde 16 é o numero de processadores lógicos que deseja ser utilizados, não é necessário utilizar 100% porém quanto mais melhor, porém caso utilize mais do que está disponível poderá travar,  então utilize a quantidade mostrada pra menos.
      no gerenciador de tarefas aba desempenho, é possível visualizar a quantidade de núcleos e processadores lógicos do seu CPU


       
      Após isso, entre no Power Shell e execute o comando:  
      docker build -t server .  
       onde "server" é o nome da imagem que será gerada
       
      Após isso, é só iniciar o servidor com o seguinte comando  
      docker run --name server --network=mynetwork -p 7171:7171 -p 7172:7172 -d server  
      lembrando que mynetwork é o nome que geramos no passo 3, e o ultimo parametro é nome da imagem que geramos anteriormente.
       
      Você poderá ver seu sevidor ronando no Docker Desktop:
       

       
      caso queira parar algum servidor ou iniciar novamente, é só clicar no botão de ação:
       

       
      Caso precise fazer alguma alteração no server, basta utilizar os comandos de build e run citados anteriormente.
       
       
       
       
      Lembrando que isso é um tutorial básico para rodar o servidor na máquina local, qualquer dúvida ou sugestão, deixe comentário.
       
    • Por L3K0T
      Iae gente consegui fazer meu cliente própio 10.10 e vim ajudar aqueles que quer cliente na versão 10.10 eu preciso de 2 DNS do no-ip e que tbm que seja redirecionado ao seu site de criar conta
       
      deixe os dados a baixo
      Preciso de 1 DNS com 19 dígitos contando com os pontos exemplo >>blablabla.sytes.net
      e + 1 DNS com 17 dígitos contanto com os pontos exemplo >>blablab.sytes.net
       
      my Ot >> 
    • Por Gabriel Dias
      Não sei se alguém já ouviu falar sobre o fórum http://www.d2jsp.org/, este site é um fórum que possui moeda própria. Os cadastrados neste fórum utilizam esta moeda (fórum gold) para efetuar trocas em jogos (principalmente do Diablo II).

      Seria muito interessante ter um sistema parecido com este aqui no TibiaKing, bom para os players pois os mesmos poderiam trocar seus itens facilmente e bom para o fórum pois esta moeda seria vendida aos cadastrados.

      Entendo que dificuldades aparecerão ao implantar um sistema destes, mas acredito que com este sistema o TibiaKing se tornará o principal fórum de Tibia do Brasil (se ainda não é). O mesmo ocorreu com o D2JSP que saiu do anonimato após implantar este sistema.

      Porém está é só a minha opinião/sugestão ...

      Abraços.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo