From 3af841f0cab0a2f9fa303c8d3a67ed30ef0f75e9 Mon Sep 17 00:00:00 2001 From: omar soufiane Date: Wed, 4 Sep 2024 13:33:19 +0100 Subject: [PATCH] feat(.env): allow environment variables to be passed dynamically to api container --- .dockerignore | 1 + Dockerfile | 1 - docker-compose.document.yaml | 3 ++- docker-compose.yaml | 3 ++- document.Dockerfile | 1 - package.json | 2 +- typeorm-cli.js | 15 +++++++++++++++ 7 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 typeorm-cli.js diff --git a/.dockerignore b/.dockerignore index e893bc07e..49e4417bb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,3 +2,4 @@ /.data /dist /files +.env \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 15cd00444..b3454e322 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,6 @@ RUN sed -i 's/\r//g' /opt/wait-for-it.sh RUN sed -i 's/\r//g' /opt/startup.relational.dev.sh WORKDIR /usr/src/app -RUN if [ ! -f .env ]; then cp env-example-relational .env; fi RUN npm run build CMD ["/opt/startup.relational.dev.sh"] diff --git a/docker-compose.document.yaml b/docker-compose.document.yaml index a25ab7e52..79eaab156 100644 --- a/docker-compose.document.yaml +++ b/docker-compose.document.yaml @@ -40,6 +40,7 @@ services: dockerfile: document.Dockerfile ports: - ${APP_PORT}:${APP_PORT} - + env_file: + - .env volumes: boilerplate-mongo-db: diff --git a/docker-compose.yaml b/docker-compose.yaml index c941e6dfd..e5d28e1f4 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -36,6 +36,7 @@ services: dockerfile: Dockerfile ports: - ${APP_PORT}:${APP_PORT} - + env_file: + - .env volumes: boilerplate-db: diff --git a/document.Dockerfile b/document.Dockerfile index c8077ff98..65ff9e289 100644 --- a/document.Dockerfile +++ b/document.Dockerfile @@ -16,7 +16,6 @@ RUN sed -i 's/\r//g' /opt/wait-for-it.sh RUN sed -i 's/\r//g' /opt/startup.document.dev.sh WORKDIR /usr/src/app -RUN if [ ! -f .env ]; then cp env-example-document .env; fi RUN npm run build CMD ["/opt/startup.document.dev.sh"] diff --git a/package.json b/package.json index d86c2a012..beea98271 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "private": true, "license": "MIT", "scripts": { - "typeorm": "env-cmd ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js", + "typeorm": "node typeorm-cli.js", "migration:generate": "npm run typeorm -- --dataSource=src/database/data-source.ts migration:generate", "migration:create": "npm run typeorm -- migration:create", "migration:run": "npm run typeorm -- --dataSource=src/database/data-source.ts migration:run", diff --git a/typeorm-cli.js b/typeorm-cli.js new file mode 100644 index 000000000..7e02bf0c0 --- /dev/null +++ b/typeorm-cli.js @@ -0,0 +1,15 @@ +// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports +const child_process = require('child_process'); + +const args = process.argv.slice(2).join(' '); + +let command; +// Create the command to run TypeORM CLI with the provided arguments +if (process.env.NODE_ENV === undefined) { + command = `env-cmd ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js ${args}`; +} else { + command = `ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js ${args}`; +} + +// Execute the command with the current environment variables +child_process.execSync(command, { stdio: 'inherit', env: process.env });