From 6a717c33a112ac9b5f69e932c7c2500ce4152792 Mon Sep 17 00:00:00 2001 From: Marcelo Alexandre Date: Tue, 23 Nov 2021 19:47:54 -0300 Subject: [PATCH 1/5] Add API to docker-compose --- Dockerfile | 9 +++++++++ docker-compose.yaml | 17 +++++++++++++++-- src/_boot/swagger.ts | 3 ++- src/config.ts | 1 + 4 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fccd57c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:16.13 + +RUN mkdir /api +WORKDIR /api + +COPY package.json /api +COPY yarn.lock /api + +RUN yarn install diff --git a/docker-compose.yaml b/docker-compose.yaml index 5975996..0a61cc1 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,8 +1,21 @@ -version: "3.5" +version: "3.9" services: + api: + build: . + container_name: node-api-boilerplate + command: yarn dev + volumes: + - .:/api + ports: + - 3000:3000 + environment: + HOST: 0.0.0.0 + SWAGGER_HOST: localhost + DB_HOST: mongodb://node-api-boilerplate-mongodb:27017 + mongodb: - container_name: blog-mongodb + container_name: node-api-boilerplate-mongodb image: mongo:4.2 ports: - 27017:27017 diff --git a/src/_boot/swagger.ts b/src/_boot/swagger.ts index cc50e01..50fdfa2 100644 --- a/src/_boot/swagger.ts +++ b/src/_boot/swagger.ts @@ -7,6 +7,7 @@ type SwaggerConfig = { swagger: { title: string; version: string; + host: string; basePath: string; docEndpoint: string; }; @@ -19,7 +20,7 @@ const swagger = makeModule('swagger', async ({ container: { build }, config: { h title: swagger.title, version: swagger.version, }, - host: `${http.host}:${http.port}`, + host: `${swagger.host}:${http.port}`, basePath: swagger.basePath, }, apis: [resolve(__dirname, '../**/interface/http/**/*.yaml'), resolve(__dirname, '../**/interface/http/**/*.ts')], diff --git a/src/config.ts b/src/config.ts index bf2e12c..8695d4d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -21,6 +21,7 @@ const config: Configuration = { swagger: { title: 'Blog API', version: '1.0.0', + host: envString('SWAGGER_HOST', envString('HOST', 'localhost')), basePath: '/api', docEndpoint: '/api-docs', }, From 28337ae02807dd7332a6ea226eaacd4c89a515f8 Mon Sep 17 00:00:00 2001 From: Marcelo Alexandre Date: Tue, 23 Nov 2021 19:48:10 -0300 Subject: [PATCH 2/5] Add Mongo Express to docker-compose --- docker-compose.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index 0a61cc1..5f0ac27 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -22,3 +22,11 @@ services: environment: MONGO_INITDB_ROOT_USERNAME: blog MONGO_INITDB_ROOT_PASSWORD: blog + + mongo-express: + container_name: node-api-boilerplate-mongo-express + image: mongo-express + ports: + - 8081:8081 + environment: + ME_CONFIG_MONGODB_URL: mongodb://blog:blog@node-api-boilerplate-mongodb:27017 From 8331c5081103fe7c6a77f2e96529b576d1810d79 Mon Sep 17 00:00:00 2001 From: Marcelo Alexandre Date: Wed, 24 Nov 2021 16:43:26 -0300 Subject: [PATCH 3/5] Move package management to docker-compose command instead of the Dockerfile --- Dockerfile | 9 --------- docker-compose.yaml | 5 +++-- 2 files changed, 3 insertions(+), 11 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index fccd57c..0000000 --- a/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM node:16.13 - -RUN mkdir /api -WORKDIR /api - -COPY package.json /api -COPY yarn.lock /api - -RUN yarn install diff --git a/docker-compose.yaml b/docker-compose.yaml index 5f0ac27..b4c1bfd 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -2,9 +2,10 @@ version: "3.9" services: api: - build: . + image: node:16.13 container_name: node-api-boilerplate - command: yarn dev + command: bash -c "yarn install && yarn dev" + working_dir: /api volumes: - .:/api ports: From 76e5af609a60a7167a30e667c88fbf74b73e877d Mon Sep 17 00:00:00 2001 From: Marcelo Alexandre Date: Wed, 24 Nov 2021 16:44:00 -0300 Subject: [PATCH 4/5] Add dependencies to docker-compose file --- docker-compose.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index b4c1bfd..26392de 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -4,6 +4,8 @@ services: api: image: node:16.13 container_name: node-api-boilerplate + depends_on: + - mongodb command: bash -c "yarn install && yarn dev" working_dir: /api volumes: @@ -27,6 +29,8 @@ services: mongo-express: container_name: node-api-boilerplate-mongo-express image: mongo-express + depends_on: + - mongodb ports: - 8081:8081 environment: From 886158f336d8138b5a1b6ac340fb9166f7664379 Mon Sep 17 00:00:00 2001 From: Marcelo Alexandre Date: Mon, 6 Dec 2021 18:51:41 -0300 Subject: [PATCH 5/5] Remove host option from the Swagger configuration --- docker-compose.yaml | 1 - src/_boot/swagger.ts | 2 -- src/config.ts | 1 - 3 files changed, 4 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 26392de..020be20 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -14,7 +14,6 @@ services: - 3000:3000 environment: HOST: 0.0.0.0 - SWAGGER_HOST: localhost DB_HOST: mongodb://node-api-boilerplate-mongodb:27017 mongodb: diff --git a/src/_boot/swagger.ts b/src/_boot/swagger.ts index 50fdfa2..0a48382 100644 --- a/src/_boot/swagger.ts +++ b/src/_boot/swagger.ts @@ -7,7 +7,6 @@ type SwaggerConfig = { swagger: { title: string; version: string; - host: string; basePath: string; docEndpoint: string; }; @@ -20,7 +19,6 @@ const swagger = makeModule('swagger', async ({ container: { build }, config: { h title: swagger.title, version: swagger.version, }, - host: `${swagger.host}:${http.port}`, basePath: swagger.basePath, }, apis: [resolve(__dirname, '../**/interface/http/**/*.yaml'), resolve(__dirname, '../**/interface/http/**/*.ts')], diff --git a/src/config.ts b/src/config.ts index 8695d4d..bf2e12c 100644 --- a/src/config.ts +++ b/src/config.ts @@ -21,7 +21,6 @@ const config: Configuration = { swagger: { title: 'Blog API', version: '1.0.0', - host: envString('SWAGGER_HOST', envString('HOST', 'localhost')), basePath: '/api', docEndpoint: '/api-docs', },