From a5ec0ff0c2fb3579896a6d58fb161c9339933db5 Mon Sep 17 00:00:00 2001 From: subnub Date: Mon, 24 Feb 2025 13:31:27 -0500 Subject: [PATCH] added prod docker config --- Dockerfile => Dockerfile.development | 3 ++- Dockerfile.production | 17 +++++++++++++++++ backend/db/connections/mongoose.ts | 2 -- ...mpose.yml => docker-compose-development.yml | 7 ++++--- docker-compose-production.yml | 18 ++++++++++++++++++ package.json | 10 ++++++++-- 6 files changed, 49 insertions(+), 8 deletions(-) rename Dockerfile => Dockerfile.development (58%) create mode 100644 Dockerfile.production rename docker-compose.yml => docker-compose-development.yml (65%) create mode 100644 docker-compose-production.yml diff --git a/Dockerfile b/Dockerfile.development similarity index 58% rename from Dockerfile rename to Dockerfile.development index 7f5b2ab..58e8c6a 100644 --- a/Dockerfile +++ b/Dockerfile.development @@ -1,6 +1,6 @@ FROM node:20 -WORKDIR /usr/app +WORKDIR /usr/app-development COPY package*.json ./ @@ -8,6 +8,7 @@ RUN npm install COPY . . +# Default Ports EXPOSE 8080 EXPOSE 3000 EXPOSE 5173 diff --git a/Dockerfile.production b/Dockerfile.production new file mode 100644 index 0000000..6451069 --- /dev/null +++ b/Dockerfile.production @@ -0,0 +1,17 @@ +FROM node:20 + +WORKDIR /usr/app-production + +COPY package*.json ./ + +RUN npm install + +COPY . . + +RUN npm run build + +# Default Ports +EXPOSE 8080 +EXPOSE 3000 + +CMD [ "npm", "run", "start"] \ No newline at end of file diff --git a/backend/db/connections/mongoose.ts b/backend/db/connections/mongoose.ts index 89a2f7e..3cac0c7 100644 --- a/backend/db/connections/mongoose.ts +++ b/backend/db/connections/mongoose.ts @@ -4,8 +4,6 @@ import fs from "fs"; const DBUrl = env.mongoURL as string; -console.log("db url", DBUrl); - if (env.useDocumentDB === "true") { console.log("Using DocumentDB"); diff --git a/docker-compose.yml b/docker-compose-development.yml similarity index 65% rename from docker-compose.yml rename to docker-compose-development.yml index d89eafd..c8ab463 100644 --- a/docker-compose.yml +++ b/docker-compose-development.yml @@ -3,12 +3,13 @@ services: app: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.development + container_name: mydrive_development env_file: - ./backend/config/.env.development volumes: - - .:/usr/app - - /usr/app/node_modules + - .:/usr/app-development + - /usr/app-development/node_modules - ${FS_DIRECTORY}:/data ports: - "${HTTP_PORT:-3000}:3000" diff --git a/docker-compose-production.yml b/docker-compose-production.yml new file mode 100644 index 0000000..084e8e3 --- /dev/null +++ b/docker-compose-production.yml @@ -0,0 +1,18 @@ +version: "3.8" +services: + app: + build: + context: . + dockerfile: Dockerfile.production + container_name: mydrive_production + env_file: + - ./backend/config/.env.production + volumes: + - .:/usr/app-production + - /usr/app-production/node_modules + - ${FS_DIRECTORY}:/data + ports: + - "${HTTP_PORT:-3000}:3000" + - "${HTTPS_PORT:-8080}:8080" + environment: + - DOCKER=true diff --git a/package.json b/package.json index 1453456..2d4a77c 100755 --- a/package.json +++ b/package.json @@ -19,8 +19,14 @@ "migrate-to-mydrive4": "NODE_ENV=production node serverUtils/migrateMyDrive4.js", "migrate-to-mydrive4:dev": "NODE_ENV=development node serverUtils/migrateMyDrive4.js", "test": "NODE_ENV=test jest", - "docker:dev": "docker-compose -f docker-compose.yml --env-file ./backend/config/.env.development up", - "docker:down": "docker-compose down" + "docker:production": "NODE_ENV=production docker-compose -p mydrive-production -f docker-compose-production.yml --env-file ./backend/config/.env.production up", + "docker:dev": "NODE_ENV=development docker-compose -p mydrive-dev -f docker-compose-development.yml --env-file ./backend/config/.env.development up", + "docker-down:production": "docker-compose -f docker-compose-production.yml down", + "docker-down:dev": "docker-compose -p mydrive-dev -f doc -p mydrive-productionker-compose-development.yml down", + "docker-build:production": "docker-compose -p mydrive-production -f docker-compose-production.yml build", + "docker-build:dev": "docker-compose -p mydrive-dev -f docker-compose-development.yml build", + "docker-build-force:production": "docker-compose -p mydrive-production -f docker-compose-production.yml build --no-cache", + "docker-build-force:dev": "docker-compose -p mydrive-dev -f docker-compose-development.yml build --no-cache" }, "dependencies": { "@babel/core": "^7.8.4",