From 5791f1bbd5a28bccb0ffe992677eaf55c1af0f03 Mon Sep 17 00:00:00 2001 From: "Gabriel A. Devenyi" Date: Thu, 23 May 2024 13:33:21 -0400 Subject: [PATCH 1/7] Remove extraneous docker compose settings --- docker-compose.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index cafc4d1b..e48d5a7b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.8' - services: frontend: build: @@ -10,8 +8,6 @@ services: - "4200:4200" volumes: - ./worklenz-frontend:/app - networks: - - worklenz_network backend: build: @@ -26,8 +22,6 @@ services: - DATABASE_URL=postgres://worklenz_user:worklenz_password@db:5432/worklenz_db volumes: - ./worklenz-backend:/app - networks: - - worklenz_network db: image: postgres:15.6 @@ -38,11 +32,6 @@ services: POSTGRES_DB: worklenz_db volumes: - postgres_data:/var/lib/postgresql/data - networks: - - worklenz_network volumes: postgres_data: - -networks: - worklenz_network: From 859b3ef17d9ddff7311817da89ef77eb64f06cc6 Mon Sep 17 00:00:00 2001 From: "Gabriel A. Devenyi" Date: Thu, 23 May 2024 13:48:57 -0400 Subject: [PATCH 2/7] Add all the environment variables used in the code to the docker compose --- docker-compose.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e48d5a7b..7289f6e2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,7 +19,32 @@ services: depends_on: - db environment: - - DATABASE_URL=postgres://worklenz_user:worklenz_password@db:5432/worklenz_db + - ANGULAR_DIST_DIR + - ANGULAR_SRC_DIR + - AWS_REGION + - BACKEND_PUBLIC_DIR + - BACKEND_VIEWS_DIR + - COMMIT_BUILD_IMMEDIATELY + - COOKIE_SECRET + - DB_HOST + - DB_MAX_CLIENTS + - DB_NAME + - DB_PASSWORD + - DB_PORT + - DB_USER + - GOOGLE_CALLBACK_URL + - GOOGLE_CLIENT_ID + - GOOGLE_CLIENT_SECRET + - HOSTNAME + - LOGIN_FAILURE_REDIRECT + - NODE_ENV + - PORT + - SESSION_NAME + - SESSION_SECRET + - SLACK_WEBHOOK + - SOCKET_IO_CORS + - SOURCE_EMAIL + - USE_PG_NATIVE volumes: - ./worklenz-backend:/app From bd0fbf665bd3daf45b0dcf959d13ae7d966caec8 Mon Sep 17 00:00:00 2001 From: "Gabriel A. Devenyi" Date: Thu, 23 May 2024 14:25:56 -0400 Subject: [PATCH 3/7] remove unneeded volume mounts --- docker-compose.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7289f6e2..c0eba6ea 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,8 +6,6 @@ services: container_name: worklenz_frontend ports: - "4200:4200" - volumes: - - ./worklenz-frontend:/app backend: build: @@ -45,8 +43,6 @@ services: - SOCKET_IO_CORS - SOURCE_EMAIL - USE_PG_NATIVE - volumes: - - ./worklenz-backend:/app db: image: postgres:15.6 From 3f1fcf50ab24f2463f774660764e6b21bed56a8f Mon Sep 17 00:00:00 2001 From: "Gabriel A. Devenyi" Date: Thu, 23 May 2024 14:26:24 -0400 Subject: [PATCH 4/7] Fix database container to use existing environment variables. --- docker-compose.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c0eba6ea..5d7869a9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,8 @@ services: ports: - "3000:3000" depends_on: - - db + db: + condition: service_healthy environment: - ANGULAR_DIST_DIR - ANGULAR_SRC_DIR @@ -45,14 +46,19 @@ services: - USE_PG_NATIVE db: - image: postgres:15.6 + image: postgres:15 container_name: worklenz_db environment: - POSTGRES_USER: worklenz_user - POSTGRES_PASSWORD: worklenz_password - POSTGRES_DB: worklenz_db + POSTGRES_DB: "${DB_NAME}" + POSTGRES_PASSWORD: "${DB_PASSWORD}" + healthcheck: + test: ["CMD-SHELL", "pg_isready -d ${DB_NAME} -U ${DB_USER}"] + interval: 10s + timeout: 5s + retries: 5 volumes: - - postgres_data:/var/lib/postgresql/data + - worklenz_postgres_data:/var/lib/postgresql/data + - ./worklenz-backend/database/:/docker-entrypoint-initdb.d volumes: - postgres_data: + worklenz_postgres_data: From 01fa40d96ea0e575899958377b5512751ad9081b Mon Sep 17 00:00:00 2001 From: "Gabriel A. Devenyi" Date: Thu, 23 May 2024 14:30:17 -0400 Subject: [PATCH 5/7] Add frontend dependency on backend being started --- docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 5d7869a9..7e1d8939 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,9 @@ services: container_name: worklenz_frontend ports: - "4200:4200" + depends_on: + backend: + condition: service_started backend: build: From c3fe4a7f9e46069422d5667f5c9e0b1f0a87f008 Mon Sep 17 00:00:00 2001 From: "Gabriel A. Devenyi" Date: Thu, 23 May 2024 14:58:40 -0400 Subject: [PATCH 6/7] Add missed env variables in docker-compose --- docker-compose.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 7e1d8939..a944cc78 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -47,6 +47,11 @@ services: - SOCKET_IO_CORS - SOURCE_EMAIL - USE_PG_NATIVE + - BUCKET + - REGION + - S3_URL + - S3_ACCESS_KEY_ID + - S3_SECRET_ACCESS_KEY db: image: postgres:15 From d0235ed27a864879c05e807032df5f21372f8f05 Mon Sep 17 00:00:00 2001 From: "Gabriel A. Devenyi" Date: Thu, 23 May 2024 14:59:10 -0400 Subject: [PATCH 7/7] Fix Docker file for backend so webserver properly listens and proxies connections --- worklenz-frontend/Dockerfile | 2 +- worklenz-frontend/package.json | 1 + worklenz-frontend/proxy-docker.config.json | 24 ++++++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 worklenz-frontend/proxy-docker.config.json diff --git a/worklenz-frontend/Dockerfile b/worklenz-frontend/Dockerfile index fb8f7d91..972d90b2 100644 --- a/worklenz-frontend/Dockerfile +++ b/worklenz-frontend/Dockerfile @@ -8,4 +8,4 @@ RUN npm install -g @angular/cli RUN npm install -CMD ["npm", "start"] +CMD ["npm", "run", "start-docker"] diff --git a/worklenz-frontend/package.json b/worklenz-frontend/package.json index 65432dce..efc47ba1 100644 --- a/worklenz-frontend/package.json +++ b/worklenz-frontend/package.json @@ -4,6 +4,7 @@ "scripts": { "ng": "ng", "start": "ng serve --proxy-config proxy.config.json --disable-host-check", + "start-docker": "ng serve --proxy-config proxy-docker.config.json --disable-host-check --host 0.0.0.0", "build": "ng build --extract-licenses --common-chunk --delete-output-path --output-hashing=all", "watch": "ng build --watch --configuration development", "test": "ng test", diff --git a/worklenz-frontend/proxy-docker.config.json b/worklenz-frontend/proxy-docker.config.json new file mode 100644 index 00000000..3d88dab7 --- /dev/null +++ b/worklenz-frontend/proxy-docker.config.json @@ -0,0 +1,24 @@ +{ + "/api": { + "target": "http://backend:3000/", + "headers": { + "language": "en", + "Accept": "application/json", + "Content-Type": "application/json; charset=utf-8" + }, + "secure": false, + "changeOrigin": true, + "logLevel": "debug" + }, + "/secure": { + "target": "http://backend:3000/", + "headers": { + "language": "en", + "Accept": "application/json", + "Content-Type": "application/json; charset=utf-8" + }, + "secure": false, + "changeOrigin": true, + "logLevel": "debug" + } +}