Pessoalmente o que eu amo com Docker é a facilidade com a qual é possível lançar recipientes obrigado Para as imagens que estão no DockerHub.

Mas quando se tem uma necessidade especial, especialmente na configuração profissional, percebe sua própria imagem torna-se essencial. O que é muito fácil de fazer com o Docker graças ao DockerFile.

DockerFile a um contêiner

um dockerfile O que é?

Um dockerfile é um arquivo de texto com o qual você será Capaz de dar ao Docker as instruções necessárias para poder criar uma imagem. É uma lata de receita da cozinha de um prato para um cozinheiro.

Para começar, devemos entender como um DockerFile está escrevendo, há uma sintaxe para seguir as seguintes instruções:

  • FROM Define a imagem de origem
  • LABEL permite adicionar metadados a uma imagem
  • RUN permite executar comandos em seu contêiner
  • ADD Adiciona arquivos ao seu
  • WORKDIR Container define o seu
  • permite definir as portas de audição padrão
  • VOLUME Define os volumes utilizáveis
  • CMD Define o comando padrão ao executar seus contêineres de docker.

Escreva seu primeiro Dockerfile

para o nosso exemplo Vamos construir uma imagem para o software ScrumBRR que permite exibir uma matriz de acompanhamento de manchas modificáveis em tempo real.
Este software usa Redis e Nodejs para funcionar, veremos como criar uma imagem de Docker a partir dele para obter o seguinte resultado:

Um arquivo de doockerfile é sempre escrito da mesma maneira. Começamos colocando a imagem que nos servirá como base para o trabalho e a ação é realizada nesta imagem. Para encontrar a imagem que corresponde à sua necessidade, aconselho você a começar de uma imagem oficial. Essas imagens são atualizadas regularmente e sua certificada pelo Docker.

Pré-requisitos

Há alguns pré-requisitos para executar este tutorial:

  • um host com Docker instalado (Se este não for o assunto é processado neste artigo: instalar o Docker para implantar seus aplicativos)
  • Criar um diretório de trabalho para este projeto.
  • Criar um arquivo de DockerFile na pasta do projeto .

a imagem básica

para o nosso projeto vamos sair com uma imagem Ubuntu 18.04, que é uma imagem oficial.

Como anteriormente indicado a imagem que vamos usar em nosso DockerFile pela diretiva de rastrear o nome da imagem e sua versão.
A diretiva do rótulo permite adicionar informações à imagem no nosso caso Endereço para correspondência da imagem.

Instalação dos pré-requisitos

# Installation des prérequisRUN apt-get update && apt-get install -y wget sudo supervisor git redis && \ mkdir -p /var/log/supervisor && \ mkdir -p /etc/supervisor/conf.d

Agora estamos começando a mudar a imagem Básico. Para realizar um comando, usamos a diretiva de execução que apenas executa o comando declarado após a diretiva.

Nesta etapa, instalamos os diferentes pré-requisitos para a operação do nome Scrumblr:

  • Atualização de depósitos
  • Instalação de pacotes (WGet, sudo, supervisor, git e redis)
  • criação da pasta de supervisor em / var / log /
  • Criando a pasta conf.d em / etc / supervisor /

para executar vários comandos depois de ter que anexá-los entre si com “& “que permite que o código de depósito seja executado em séries e” \ “comandos que permite retornar à linha para ver mais claramente no código.

Para a próxima etapa, forneceremos o arquivo de configuração do serviço de supervisor para o Docker para copiar em nossa imagem.

Para iniciar a criar um arquivo de supervisor .Conf no diretório onde é v OTRE DockerFile e adicione o seguinte conteúdo.

nodaemon=truecommand=redis-serverautostart=trueautorestart=trueuser=rootstdout_logfile=/var/log/redis/stdout.logstderr_logfile=/var/log/redis/stderr.logcommand=node server.js --port 80autostart=trueautorestart=trueuser=rootstdout_logfile=/var/log/supervisor/scrumblr.logstderr_logfile=/var/log/supervisor/scrumblr_err.log

Então você contou o Docker com a direção Adicionar para adicionar nosso arquivo supervisor.conf no / etc / etc / de Nossa imagem.

ADD supervisor.conf /etc/supervisor.conf

Instalando Nodejs

Agora vamos instalar em nossa imagem Nodejs que nos permitirá compilar e executar as fontes de Scrumblr. Como antes, usaremos a diretiva de execução para executar as seguintes ações.

  • Baixe o script de instalação nodejs
  • Execução do script baixado
  • instalação do pacote Nodejs
# Installation de NodeJSRUN wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ apt-get install -y nodejs

Instalação Scrumblr

Agora podemos instalar o aplicativo Scrumblr em nossa imagem sempre usando a diretiva de execução para executar as seguintes ações:

  • Clone de fontes scrumbl do depósito do github do projeto
  • Mover na pasta / scrumblr
  • instalando scrumblr via npm
# Installation de SCRUMBLRRUN git clone https://github.com/aliasaria/scrumblr.git && \ cd scrumblr && \ npm install

Alterando o arquivo Config.js

Para a última etapa de configuração, devemos modificar uma linha do arquivo “config.js” para permitir a aplicação da energia conectada ao banco de dados Redis .

A linha a seguir que usa a diretiva de execução mais uma vez usa o comando “sed” para substituir a cadeia de caractere 127.0.0.1:6379 no Redis: //127.0.0.1: 6379.

Finalização do DockerFile

Para concluir, forneceremos as instruções necessárias para realizar nossa imagem em um contêiner.

  • workdir especifica o Diretório de trabalho de contêiner aqui / scrumblr
  • Expute Especifica a porta de comunicação no nosso caso O 80
  • stopsignal indica o sinal do sistema que interrompe o contêiner
  • cmd indica o comando Para ser executado na inicialização do contêiner
WORKDIR /scrumblrEXPOSE 80STOPSIGNAL SIGTERMCMD 

Se o comando na directiva CMD é composto por vários campos, é imperativo respeitar a seguinte sintaxe:

Nosso DockerFile agora está completo e deve se parecer com isto:

FROM ubuntu:18.04LABEL maintainer="[email protected]"# Installation des prérequisRUN apt-get update && apt-get install -y wget sudo supervisor git redis && \ mkdir -p /var/log/supervisor && \ mkdir -p /etc/supervisor/conf.dADD supervisor.conf /etc/supervisor.conf# Installation de NodeJSRUN wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ apt-get install -y nodejs# Installation de SCRUMBLRRUN git clone https://github.com/aliasaria/scrumblr.git && \ cd scrumblr && \ npm install# Modification du fichier config.jsRUN sed -i -e "s/127.0.0.1:6379/redis:\/\/127.0.0.1:6379/g" /scrumblr/config.jsWORKDIR /scrumblrEXPOSE 80STOPSIGNAL SIGTERMCMD 

construção e lançamento da nossa imagem

Nós só temos que construir nossa imagem nomeando-a corretamente. Para se mover no diretório onde o seu DockerFile estiver contido e o arquivo supervisor.conf e iniciar o seguinte comando:

  • o argumento -t Especifique uma tag em nossa imagem.
captura de tela do terminal mostrando o controle de controle'écran terminal montrant la commande SED

Uma vez que sua imagem seja construída e marcada, você pode executá-lo e validar sua operação com o seguinte comando:

docker run --detach --publish 8080:80 --name scrumblr scrumblr:latest
  • -detach permite que você execute o contêiner no modo Detach, isto é, o contêiner funcionará no modo de serviço.
  • – Publicar permite especificar a porta a Acesse o aplicativo. Você deve primeiro especificar a porta do host aqui no 8080 e, em seguida, a porta do contêiner acima.
  • -Name permite definir o nome do contêiner.
captura de tela Mostrando o comando de execução de Docker'écran montrant la commande docker run

Agora que o seu contêiner é lançado você pode acessar seu scrumblr através do endereço IP do seu host do Docker na porta 8080.

Leave a comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *