Publicando container Node no Heroku


Publicando container Node no Heroku

Container Docker on Heroku

O objetivo desse artigo será a criação de uma imagem de uma aplicação Web desenvolvida em Node.js com e a sua publicação em um container no Heroku.

Nosso primeiro passo será escolhermos um diretório para o nosso projeto e a criação de dois novos arquivos dentro dele o package.json e server.js. Com o diretório e os arquivos criados abra um editor de texto de sua preferencia, em seguida vamos colar o código a baixo dentro no nosso arquivo package.json.

{
"name": "nodejs-docker",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "[email protected]",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.13.3"
    }
}

Agora adicione o código a baixo no seu arquivo server.js.

'use strict';
const express = require('express');
// Constants
const PORT = process.env.PORT || 3000;
const HOST = '127.0.0.1';
// App
const app = express();
app.get('/', (req, res) => {
    res.send('Hello world\n');
});
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

Agora execute o comando npm install para baixar os nossos pacotes, assim que ele finalizar execute npm start para que possamos verificar se o projeto esta rodando corretamente.

Caso tudo estiver OK irá aparecer a mensagem a baixo no terminal do seu Visual Studio Code:

Bom, até esse ponto não vimos nenhuma novidade, somente criamos uma aplicação simples em Node. Vamos agora criar o nosso arquivo DockerFile.

FROM node:boron
WORKDIR /app
COPY . .
CMD NODE_URLS=http://*:$PORT npm start

Vamos navegar pelas linhas do nosso arquivo:

FROM node:boron

Nessa primeira linha nos estamos definindo qual imagem iremos utilizar.

WORKDIR /app

Nesse passo nos estamos definindo o diretório dentro da nossa aplicação que ira executar o nosso código.

COPY . .

Nesse ponto iremos copiar os arquivos do nosso diretório local para dentro da nossa imagem.

CMD NODE_URLS=http://*:$PORT npm start

Por fim estamos criando uma variável local para receber a porta dinamicamente e passando o comando que ira precisar ser executado para rodar o nosso container.

Com tudo OK vamos agora criar a nossa imagem. Para isso, execute o comando a baixo no seu terminal dentro do diretório do que você criou o seu arquivo DockerFile.

docker build -t nodejs-docker .

Agora execute o comando docker images para verificar se a imagem foi criada corretamente.

Nosso próximo passo sera executar a nossa imagem. Para isso execute o comando a baixo no seu terminal:

docker run -p 80:8080 nodejs-docker

Agora para verificarmos se o nosso container esta executando corretamente iremos utilizar o comando docker ps, ele verificar os containers que estão sendo executados.

Abra no seu navegador o endereço http://localhost/ , caso tudo OK ira aparecer a mensagem Hello world.

Vamos agora criar a tag da nossa imagem para que possamos subir ela no Heroku, execute o comando a baixo no seu terminal:

docker tag nodejs-docker registry.heroku.com/nodejs-docker/web

Nosso próximo passo será logar no Heroku. Para isso, execute o comando a baixo no seu terminal, assim que ele terminar execute o segundo comando para enviar a sua imagem.

heroku container:login
docker push registry.heroku.com/nodejs-docker/web

Caso tudo esteja OK você irá receber o resultado a baixo no seu terminal:

Por fim, podemos abrir no nosso navegador a URL a baixo e ver o nosso container sendo executado no Heroku.

https://nodejs-docker.herokuapp.com/

Compartilhe:

Share on facebook
Facebook
Share on twitter
Twitter
Share on pinterest
Pinterest
Share on linkedin
LinkedIn

Table of Contents

Postagens Relacionadas

Chansondouce

Chanson douce

Chanson douce () – Drama, Crime – 1h 40min –   Nota: 6/10   Sinopse     Elenco Leïla Bekhti Como – Myriam Karin Viard
OutpostInfernoNegro

Outpost 2: Inferno Negro

O ano é 1945, 2ª Guerra Mundial, e um cientista alemão de nome Klausener está trabalhando em uma tecnologia nova e assustadora que tem o poder de criar um ex…
Atrevimiento

Atrevimiento

Atrevimiento () – Mistério – 0h 0min –   Nota: 7/10   Sinopse     Elenco Tomás Becerra Como – Ángel Romero Flores Como –