Dockerizar um aplicativo inclui a especificação de todos os pré-requisitos necessários para executar o aplicativo e, em seguida, utilizar o Dockerfile para construir uma imagem Docker especializada que pode ser compartilhada com várias máquinas. Dockerizando um “ Node.js ”O aplicativo aumenta a consistência e garante uma depuração conveniente para o desenvolvedor.
Pré-requisitos
Os pré-requisitos para dockerizar um “ Node.js ”A aplicação inclui o seguinte:
- Instalação do Docker.
- Compreensão básica do aplicativo Node.js.
Como encaixar um aplicativo Node.js?
A ' Node.js ”O aplicativo pode ser encaixado por meio das seguintes etapas:
Etapa 1: crie um arquivo “package.json”
Primeiro, crie um novo diretório onde todos os arquivos serão compostos. Dentro deste diretório, crie o “ pacote.json ”Arquivo que representa o aplicativo junto com suas dependências:
{'nome' : 'docker_web_app' ,
'versão' : '1.0.0' ,
'descrição' : 'Node.js no Docker' ,
'autor' : 'Primeiro último ' ,
'principal' : 'servidor.js' ,
'roteiros' : {
'começar' : 'nó servidor.js'
} ,
'dependências' : {
'expressar' : '^4.18.2'
} }
Etapa 2: gerar um arquivo “package-lock.json”
Dentro do arquivo “package.json”, execute o “ instalação npm ”cmdlet. Isso irá gerar um “ pacote-lock.json ” que é copiado para a imagem Docker, da seguinte forma:
npm instalar
Etapa 3: crie um servidor
Depois disso, crie um “ servidor.js ”Arquivo que declara um aplicativo da web utilizando o“ Expresso.js ' estrutura:
'usar estrito' ;const expresso = requer ( 'expressar' ) ;
const PORTA = 8080 ;
const HOST = '0.0.0.0' ;
const aplicativo = expresso ( ) ;
aplicativo.get ( '/' , ( requerer, res ) = > {
res.enviar ( 'Olá Mundo' ) ;
} ) ;
app.listen ( PORTO, ANFITRIÃO, ( ) = > {
console.log ( ` Executando em http: // ${HOST} : ${PORT} ` ) ;
} ) ;
Agora, vamos passar para as metodologias para executar a aplicação dentro de um contêiner Docker por meio de uma imagem oficial do Docker.
Etapa 4: crie um Dockerfile
Crie um Dockerfile manualmente dentro do mesmo diretório que contém todos os arquivos. Neste arquivo, escreva a seguinte linha de código:
DO nó: 18DIRTRABALHO / usr / fonte / aplicativo
COPIAR pacote * .json. /
EXECUTAR npm instalar
CÓPIA DE . .
EXPOR 8080
DMC [ 'nó' , 'servidor.js' ]
No trecho de código acima, aplique as etapas fornecidas abaixo:
- Primeiro, utilize a versão 18 de suporte de longo prazo mais recente do nó como uma imagem base contida em DockerHub .
- Depois disso, crie um diretório para conter o código do aplicativo na imagem.
- Isso representa o diretório de trabalho do aplicativo.
- Agora, instale as dependências do aplicativo via “ npm ”.
- Observação: Se o npm versão 4 ou anterior estiver sendo utilizado, um arquivo “package-lock.json” não será criado.
- Agora, copie o “ pacote.json ' arquivo. Além disso, agrupe o código-fonte do aplicativo na imagem Docker por meio do “ CÓPIA DE ”instrução.
- Utilize o “ EXPOR ”Instrução para permitir que o aplicativo seja vinculado à porta 8080.
- Por fim, defina o cmdlet para executar a aplicação via CMD que define o tempo de execução. Aqui o ' nó server.js ”O cmdlet será utilizado para iniciar o servidor.
Etapa 5: crie um arquivo “.dockerignore”
Crie um arquivo “.dockerignore” no “ Dockerfile ”diretório/pasta contendo o conteúdo fornecido abaixo:
node_modulesnpm-debug.log
Este conteúdo evita que os módulos locais e os logs de depuração, respectivamente, sejam copiados na imagem do Docker.
Etapa 6: construir a imagem
Agora, dentro do diretório que contém o Dockerfile, crie a imagem usando o cmdlet indicado abaixo:
construção do docker. -t nodejs / node-web-app
Neste cmdlet, “ nodejs ”refere-se ao nome do diretório, então especifique o cmdlet adequadamente e o“ -t ”marca a imagem.
Agora, liste as imagens por meio deste comando:
imagens da janela de encaixe
Etapa 7: execute a imagem
Execute/execute a imagem usando o cmdlet indicado abaixo:
execução do docker -p 49160 : 8080 -d nodejs / node-web-app
Aqui o ' -p ”redireciona uma porta pública para uma porta privada dentro do contêiner e o“ -d ” flag executa o contêiner em modo desanexado, ou seja, em segundo plano.
Etapa 8: gerar a saída do aplicativo
Agora, imprima a saída do aplicativo usando os seguintes comandos:
janela de encaixe obs:registros do docker 77b1e3c8576e
Se houver necessidade de navegar dentro do shell do contêiner, utilize o “ executivo ”cmdlet:
janela de encaixe executivo -isto 77b1e3c8576e / caixa / festa
Aqui, ' 77b1e3c8576e ”representa o ID do contêiner que pode ser copiado através do executado“ janela de encaixe ps ”Comando anteriormente.
Etapa 9: Testando o Aplicativo
Para testar o aplicativo, recupere a porta do aplicativo que o Docker mapeou:
janela de encaixe obs:
No cmdlet acima, o Docker mapeou o “ 8080 ”porta dentro do contêiner para a porta“ 49160 ”na máquina.
Etapa 10: invocando o aplicativo
Invoque o aplicativo através do “ ondulação ” cmdlet referindo-se à porta mapeada acima e inserindo os valores necessários:
ondulação -eu host local: 49160
Etapa 11: fechar/encerrar o aplicativo
Por último, desligue o aplicativo através do “ matar ”cmdlet:
janela de encaixe matar 77b1e3c8576e
Além disso, confirme se o aplicativo foi interrompido por meio deste comando com valores de entrada:
ondulação -eu host local: 49160
Conclusão
A ' Node.js ”O aplicativo pode ser dockerizado criando um servidor, um dockerfile, o arquivo “.dockerignore”, construindo e executando a imagem, gerando a saída do aplicativo e testando, fechando e confirmando a interrupção do aplicativo. Este artigo abordou a dockerização de um aplicativo Node.js.