7.2 - Deploy com Heroku e CI/CD e Docker
Pré-Requisito
Exercício
Deploy do Frontend
Deploy do Backend
Clonar Backend e abrir no vs code
Criar um dockerfile
Dockerfile
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD [" npm" , " start" ]
Criar o heroku.yml
heroku.yml
build:
docker:
web: Dockerfile
run:
web: npm start
Criar o app no heroku
comando
heroku create --app nome_app
Setar o ambiente do container (criar a stack)
comando
heroku stack -a nome_app
heroku stack:set container -a nome_app
Subir o app no heroku
comando
git add .
git commit -m " up"
git push heroku master
git push heroku main:master
Criar o banco de dados no SUPABASE e copiar as credenciais
Configurar o config.js do sequelize
config.js
require ( 'dotenv' ) . config ( ) ;
module . exports = {
development : {
username : 'root' ,
password : null ,
database : 'database_development' ,
host : '127.0.0.1' ,
dialect : 'postgres' ,
} ,
test : {
username : 'root' ,
password : null ,
database : 'database_test' ,
host : '127.0.0.1' ,
dialect : 'postgres' ,
} ,
production : {
username : process . env . DB_USER ,
password : process . env . DB_PASSWORD ,
database : process . env . DB_NAME ,
host : process . env . DB_HOST ,
dialect : 'postgres'
} ,
} ;
Configurar as variáveis de ambiente no Heroku
comandos
heroku config:set DB_HOST=db.syudaesldphgtohlateg.supabase.co --app backend-trybe
heroku config:set DB_USER=postgres --app backend-trybe
heroku config:set DB_NAME=postgres --app backend-trybe
heroku config:set DB_PASSWORD=weqjoc-1Durse-divwad --app backend-trybe
heroku config:set DB_DIALECT=postgres --app backend-trybe
Testar a conexão da máquina local através do script utils/testSequelizeConnection.js
Testar conexão com o banco a partir do Heroku.
comando
heroku run node utils/testSequelizeConnection.js
A rota de GET já está implementada do exercício 05
Criar (migrate ) e popular (seed ) o banco
comandos
npm install -g sequelize-cli
npx sequelize-cli db:migrate --env production
npx sequelize-cli db:seed:all --env production
Conectar Frontend com Backend
Configurar lint no Github Actions
7.2 - Deploy com Heroku e CI/CD e Docker
Pré-Requisito
URL
https://devcenter.heroku.com/articles/heroku-cli#install-the-heroku-cli
Exercício
Deploy do Frontend
Clonar Frontend e abrir no vs code
Criar um app no heroku
Lembrar que o builder mars não suporta o Heroku 22, sendo necessário executar antes:
heroku stack:set heroku-20Comando
Subir o código no repositório git do heroku (deploy)
package.jsonpara utilizar o node 16.xComando
Se ao realizar deploy no Heroku o
package-lock.jsoncausar erros de build, não enviá-lo para deployAbrir o app e verificar que o loading irá aparecer
Comando
Deploy do Backend
Clonar Backend e abrir no vs code
Criar um dockerfile
Dockerfile
Criar o
heroku.ymlheroku.yml
build: docker: web: Dockerfile run: web: npm startCriar o app no heroku
comando
Setar o ambiente do container (criar a stack)
comando
Subir o app no heroku
comando
Criar o banco de dados no SUPABASE e copiar as credenciais
Configurar o
config.jsdo sequelizeconfig.js
Configurar as variáveis de ambiente no Heroku
comandos
Testar a conexão da máquina local através do script
utils/testSequelizeConnection.jsCriar as variáveis de ambiente
.env
Alterar o script para usar a lib
dotenvtestSequelizeConnection.js
Rodar o script para testar conexão com o banco
comando
Testar conexão com o banco a partir do Heroku.
comando
A rota de GET já está implementada do exercício 05
Criar (migrate) e popular (seed) o banco
comandos
Conectar Frontend com Backend
Preparar o backend para aceitar request via browser (Ativar o cors)
instalar cors
npm i corsapp.js
commit push
Apontar o frontend para url do backend
App.js
Carregar o frontend e ver tudo lindo funcionando
URL
https://frontend-trybe.herokuapp.com/
Configurar lint no Github Actions
Adicionar o script para rodar lint no package.json
package.json
Criar action no github
.github/workflows/main.yml
Subir código NO GITHUB em uma branch
comandos