Como Dockerizar um aplicativo Node.js

Como Dockerizar Um Aplicativo Node Js



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ó: 18
DIRTRABALHO / 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_modules
npm-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.