From 32690e56300bf9f64e6fa56c2d147c320c1e56f2 Mon Sep 17 00:00:00 2001 From: Michel Pereira Date: Tue, 3 Jan 2023 00:17:47 -0300 Subject: [PATCH] FEAT: Implemets PORT variable --- .dockerignore | 2 +- Dockerfile | 8 +++++++- compose.yml | 9 ++++++--- models/connection.js | 3 ++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.dockerignore b/.dockerignore index 29f4652..43f5a2c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,6 @@ .editorconfig -.env .eslintignore +.env .eslintrc.json .git .github diff --git a/Dockerfile b/Dockerfile index 9e1aadf..4d23e0f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,18 @@ + +# Essa porta, em EXPOSE, é a padrão, mas poderia ser modificado, por definir numa variavel PORT -- como feito na linha 12, por exemplo. +# No entanto, para fins de estudo e testes sobre variáveis de ambiente, defini (variável PORT), também, em compose.yml com outro número. +# Fiz isso pra observar que uma mesma variável tem seu valor sobrescrito, se redefinida na criação de um container. + FROM node:lts-buster WORKDIR /myapp ENV DB_NAME GamesStore ENV DB_HOST games-store-db - +ENV PORT 2999 COPY . . + EXPOSE 3000 RUN npm install diff --git a/compose.yml b/compose.yml index 600ae00..7e4c851 100644 --- a/compose.yml +++ b/compose.yml @@ -1,8 +1,12 @@ + +# Variável definida em arquivo compose ou em outras maneiras de criação de containe , ... +# ... terá prioridade em relação a mesma variável ser definida em um dockerfile. + services: backend: build: . ports: - - 3000:3000 + - 3003:3006 # A porta da direita precisa ser gual a da variável PORT abaixo (linha 17). depends_on: - database networks: @@ -10,11 +14,10 @@ services: environment: - DB_HOST=database - DB_NAME=GamesStore - + - PORT=3006 database: build: models/ networks: - app-game-2 - networks: app-game-2: diff --git a/models/connection.js b/models/connection.js index 17d478b..1df9f2e 100644 --- a/models/connection.js +++ b/models/connection.js @@ -8,7 +8,8 @@ const OPTIONS = { }; const MONGO_HOST = process.env.DB_HOST || "games-store-db"; const MONGO_NAME = process.env.DB_NAME || "GamesStore"; -const MONGO_DB_URL = `mongodb://${MONGO_HOST}:27017/${MONGO_NAME}`; +const MONGO_PORT = process.env.DB_PORT || 27017; +const MONGO_DB_URL = `mongodb://${MONGO_HOST}:${MONGO_PORT}/${MONGO_NAME}`; let db = null;