From 7480e9f982906cb05390d9663b557183e4c8f2e8 Mon Sep 17 00:00:00 2001 From: Nicolas Pearson Date: Tue, 30 Nov 2021 08:20:51 +0200 Subject: [PATCH] feat: set docker to production environment (#25) * feat: set docker to production environment * fix: cleanup package.json scripts * docs: update README.md --- README.md | 2 ++ consents.http | 6 +++--- db/scripts/docker-bootstrap.sql | 3 ++- docker-compose.yaml | 3 +++ package.json | 11 +++++------ packages/backend/svc-consents/package.json | 2 +- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index e4d1f6e7..2dfc4374 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,8 @@ yarn workspace svc-consents test:integration The project can also be built and started using docker: +> Note: Using docker will start the services in production mode, which excludes database fixtures. + ```bash # Build the package using docker yarn workspace svc-consents docker:build diff --git a/consents.http b/consents.http index 24b6f5cc..b75f971d 100644 --- a/consents.http +++ b/consents.http @@ -1,5 +1,5 @@ @baseUrl = http://localhost:3000/v1/consents -@token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiNjA2MjU4MjUtNGJjNS00YjUzLWJlNmYtNzNkMDkwZjNmMzRiIiwiaWF0IjoxNjM4MTk3MTkzLCJleHAiOjE2MzgxOTgwOTMsImlzcyI6InN1cHBvcnRAZ3Jhbml0ZS5jb20iLCJqdGkiOiI5ZTRmZWU0OC01MDMyLTRkNjktODI0Ni1kODRkY2E2MTdlN2IifQ.PSquNTiSPPpR0n84KgBlB04gU_kfkoyjAm5N1AakQ8I +@token = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiNWMyNzY3ZjktN2QzYy00NmEzLWIwZTMtNmI1NzNhYWY5MDNjIiwiaWF0IjoxNjM4MjUxMDMxLCJleHAiOjE2MzgyNTE5MzEsImlzcyI6InN1cHBvcnRAZ3Jhbml0ZS5jb20iLCJqdGkiOiJjNDBjOGVkNC1lMDY1LTRlNGEtOGVmMi03Njg5Nzc3ODUxYjgifQ.Ci4uXe_-k0ez1Q0zqlPx3LdAR8Rza2_VEJxel2qECWw ######################################################################## ########### AUTH ########### @@ -27,7 +27,7 @@ Authorization: Bearer {{token}} { "id": "email_notifications", - "enabled": false + "enabled": true } ######################################################################## @@ -61,6 +61,6 @@ Accept: application/json Content-Type: application/json { - "email": "alex.doe@example.com", + "email": "john.doe@example.com", "password": "secret" } diff --git a/db/scripts/docker-bootstrap.sql b/db/scripts/docker-bootstrap.sql index 3f4af063..15fbef7a 100644 --- a/db/scripts/docker-bootstrap.sql +++ b/db/scripts/docker-bootstrap.sql @@ -1,5 +1,6 @@ -- The database is created by the docker-compose.yaml -SET search_path TO postgres; +CREATE EXTENSION IF NOT EXISTS pgcrypto; +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- Create the schemas CREATE SCHEMA IF NOT EXISTS consents; diff --git a/docker-compose.yaml b/docker-compose.yaml index 94cc37ec..041716a6 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -10,6 +10,7 @@ services: ######################### svc-consents: + image: granite-svc-consents:latest build: args: PACKAGE: svc-consents @@ -20,6 +21,8 @@ services: environment: - API_HOST=0.0.0.0 - API_PORT=3000 + - ENVIRONMENT=production + - NODE_ENV=production - TYPEORM_DATABASE=granite - TYPEORM_HOST=db - TYPEORM_PASSWORD=secret diff --git a/package.json b/package.json index 411be8e1..2ddcfa62 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,11 @@ "clean": "yarn clean:jest && yarn clean:yarn", "db:attach": "yarn exec:docker-compose exec db psql granite-db granite", "db:attach:integration": "yarn exec:docker-compose exec db-integration psql granite-db-integration granite", - "db:logs:integration": "yarn exec:docker-compose logs -f db-integration", "db:logs": "yarn exec:docker-compose logs -f db", - "db:start:integration": "yarn exec:docker-compose up -d --force-recreate db-integration", + "db:logs:integration": "yarn exec:docker-compose logs -f db-integration", "db:start": "yarn exec:docker-compose up -d --force-recreate db", + "db:start:integration": "yarn exec:docker-compose up -d --force-recreate db-integration", + "db:stop": "docker-compose rm -f -s -v db", "db:stop:integration": "docker-compose rm -f -s -v db-integration", "doctor": "yarn dlx @yarnpkg/doctor .", "exec:docker-compose": "docker-compose -f docker-compose.yaml", @@ -26,14 +27,12 @@ "exec:jest": "jest --coverage --color --forceExit --runInBand", "exec:prettier": "prettier", "exec:script:generate-migration": "./shell/generate-migration.sh", - "exec:ts-node": "ts-node -T -r tsconfig-paths/register", - "exec:tsc": "tsc", "lint:markdown": "markdownlint -c markdownlint.yaml $(find . -name '*.md' -not -path './.yarn/*')", "lint:yaml": "yamllint -d yamllint.yaml .", "lint": "yarn lint:markdown && yarn lint:yaml", + "postinstall": "husky install", "prettier:fix": "prettier --config .prettierrc --no-editorconfig --write packages/**/*.ts", - "prettier": "prettier --config .prettierrc --no-editorconfig --check packages/**/*.ts", - "postinstall": "husky install" + "prettier": "prettier --config .prettierrc --no-editorconfig --check packages/**/*.ts" }, "dependencies": { "@commitlint/cli": "^15.0.0", diff --git a/packages/backend/svc-consents/package.json b/packages/backend/svc-consents/package.json index 0ba6d556..6d4069e9 100644 --- a/packages/backend/svc-consents/package.json +++ b/packages/backend/svc-consents/package.json @@ -2,7 +2,7 @@ "name": "svc-consents", "private": true, "version": "0.0.0", - "description": "The consent management service", + "description": "The consent management service.", "keywords": [ "backend" ],