BLOG

Criando ambiente Node em Docker em 5 passos


Simples passo a passo para construção de um contêiner NodeJS

Neste artigo irei mostrar como podemos montar uma imagem simples, usa-la em um contêiner e subir uma simples aplicação em NodeJS.

Se sua intenção for entrar em detalhe sobre o funcionamento de Docker, esse artigo não é aconselhado! Apenas mostrarei como podemos montar um ambiente em poucos passos e sem complicações.

Todo o exemplo que utilizaremo nesse artigo seguirá o exemplo do código que postei no GitHub abaixo:

GitHub – toolbox-devops/docker-beginner: Exemplo básico e prático de uso de imagens Docker.
Exemplo básico e prático de uso de imagens Docker. – GitHub – toolbox-devops/docker-beginner: Exemplo básico e prático…github.com

De forma rápida

Dividiremos o conhecimento em três etapas, o build de uma imagem, a criação de um contêiner, e o deploy da aplicação.

1 — A aplicação

Dentro da pasta app/index.js, temos um script básico uma aplicação, que subirá na porta 3000 e responderá a qualquer chamada GET com um OK.

2 — A Imagem

Agora, criaremos uma imagem para rodarmos essa aplicação, para isso criaremos um script que montará o ambiente necessário para nossa aplicação, para isso, usaremos o arquivo Dockerfile do repositório sitado acima, nele criaremos as seguintes instruções:

2.1 — FROM

O FROM irá procura no repositório de imagens dockehub alguma imagem existente com o nome que daremos. Neste caso optaremos pela imagem node que contém o ambiente necessário para rodar qualquer aplicação em node. Para a imagem node, usaremos a tag 10.18.0-alpine3.10 que basicamente apontará para um build de imagem menor que a imagem node padrão, sabendo que geralmente os ambientes alpines praticamente são os mais crús possíveis, sem arquivos desnecessários, tornando assim qualquer processo de deploy/build/criação de ambiente mais simples.

2.2 — MAINTAINER

Onde faremos nosso jabá pessoal, colocaremos o nome de quem manterá a imagem que estamos criando.

2.3 — COPY

Neste caso, estou sinalizando para o build que copie tudo que tem dentro da pasta app do nosso repositório para a pasta usr/app da imagem node:10.18.0-alpine3.10.

2.4 — WORKDIR

Estou apontando o diretório que se tornará “padrão” para o script prosseguir, que será a pasta usr/app de dentro da imagem node:10.18.0-alpine3.10.

2.5 — EXPOSE

Estamos sinalizando que essa imagem irá expor alguma porta onde iremos subir nossa aplicação, e isso vai depender do tipo de aplicação que você utiliza, por exemplo, MySQL usa por padrão a porta 3306, Mongo usa 27071, TomCat usa a 8080.

2.6 — RUN

Serve para executarmos um comando no nosso script. Serie equivalente a abrir o terminal do Linux e executar qualquer command como mv, cp e etc.

2.7 — CMD

Esse comando serve para denominar qual seria a ultima ação que será valida para seu contêiner e isso é muito importante, pois se você não colocar nenhum comando, seu contêiner não ficara “em pé” pois não há nada para rodar nele. Então, para esse cenário, vou colocar o comando de npm start, para iniciar nossa aplicação teste, ou seja, no final de tudo que o Dockerfile fizer, ele irá subir nossa aplicação ( que se não tiver erro algum, se manterá em pé até desligarmos o contêiner ).

3 — Build da imagem

Para criar nossa imagem, de dentro da pasta onde o arquivo Dockerfile estará, execute o seguinte comando.

Daremos o nome de user/docker-node para nossa imagem, você pode customizar conforme sua vontade, e daremos a tag 0.1 para ela.docker build -t user/docker-node:0.1 .

4 — Criando nosso contêiner

Agora que temos nossa imagem criada, iremos criar nosso ambiente, ou melhor, contêiner para execução da nossa aplicação.

Neste momento, estamos dando o nome do contêiner de docker-test e estamos sinalizando que a porta 3000 de seu computador, representará a porta 3000 que o contêiner utilizará, isso é muito importante pois podemos expor a porta 3000 no contêiner e redirecionar para a porta 80 da nossa máquina. E por fim, apontaremos para a imagem que criamos, a user/docker-node:01docker run –name docker-test -p 3000:3000 user/docker-node:0.1

5 — Teste final

Por fim, nossa aplicação estará em pé e podemores acessa-la pelo endereço http://localhost:3000/<QualquerCoisaQueVocêEscrever>

Tem interesse em aprender mais sobre? Entre em contato conosco ❤️!

Toolbox Devops Consultoria

Toolbox Devops Consultoria

Simplicando seu dia-a-dia na cloud

Esta gostando do conteúdo ? Compartilhe!