Dockerizando o Node.js

Thiago S. Adriano
dockerbr
Published in
3 min readOct 8, 2017

Vamos criar uma passo a passo de como podemos criar uma imagem de uma API desenvolvida em Node.js. Nosso primeiro passo será a criação de um novo projeto. Para isso, escolha um diretório dentro do seu computador e execute o comando npm init -y, em seguida abra ele com um editor de sua preferência, nós iremos utilizar o VS code para esse artigo. Atualize o seu arquivo package.json com o código a baixo:

{
"name": "docker-node",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.1"
}
}

Agora crie um novo arquivo chamado server.js dentro da sua solução e atualize ele com o código a baixo, nós pegamos ele do site do próprio express.js:

var express = require('express')var app = express()app.get('/', function (req, res) {
res.send('Hello World!')
})
app.listen(8081, function () {
console.log('app listening on port 8081!')
})

Execute o comando npm i para baixarmos as nossas dependências. Vamos agora testar se a nossa API está OK. Para isso execute o comando npm start e abra no seu navegador o endereço: http://localhost:8081. Caso tudo esteja sendo executado corretamente, nós iremos receber o retorno a baixo da nossa API.

Bom, para que possamos criar a nossa imagem a partir da nossa aplicação, nós iremos precisar criar dois novos arquivos o Dockerfile. Após a criação deles nós termos a seguinte estrutura:

estrutura básica

Nosso próximo passo será a atualização nosso arquivo Dockerfile.

FROM node:7
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
CMD node index.js
EXPOSE 8081

Vamos entender os passos acima:

  • FROM: nome da imagem
  • WORKDIR: ponto de entrada para executarmos as nossas instruções.
  • Copy: estamos passando o nosso package.json para o diretorio app dentro do nosso container.
  • Run: estamos baixando os nossos pacotes dentro do nosso container.
  • CMD: executando o nosso node.
  • EXPOSE: expondo a porta 8081 do nosso container.

Agora para que possamos criar a nossa imagem, execute o comando a baixo no seu terminal dentro do diretório que você criou o seu arquivo Dockerfile.

docker build -t tadrianonet/nodeapi .

Para verificar se ele executou corretamente, digite o comando a baixo no seu terminal:

Docker build image

Agora para que possamos criar o nosso contêiner a partir da imagem que nos acabamos de criar, devemos executar o comando a baixo passando as portas que iremos utilizar:

docker run -p 3000:8081 tadrianonet/nodeapi

Abra o endereço http://127.0.0.1:3000/ no seu navegador para que possamos validar se os passos anteriores estão OK.

--

--