From fcd09cd41d3c4844dd687786e83fb9f7559ad822 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Mon, 15 Apr 2024 22:34:18 +0100 Subject: [PATCH 01/10] volume fixed --- makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/makefile b/makefile index 930bae1..9bee421 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,7 @@ # build the command line interface and install node packages build: docker build --build-arg "USER_ID=$$(id -u)" --build-arg "GROUP_ID=$$(id -g)" -f ./docker/dockerfile --target lotr_cli -t lotr-cli:latest . - docker run -v ./backend:/app/backend -v ./frontend:/app/frontend --entrypoint /app/npm-build.sh -it --rm --name lotr-cli lotr-cli + docker run -v ${PWD}/backend:/app/backend -v ${PWD}/frontend:/app/frontend --entrypoint /app/npm-build.sh -it --rm --name lotr-cli lotr-cli # start and stop the local environment up: @@ -11,4 +11,4 @@ down: # run the command line interface to manage application dependencies and run tests cli: - docker run -v ./backend:/app/backend -v ./frontend:/app/frontend -it --rm --name lotr-cli lotr-cli + docker run -v ${PWD}/backend:/app/backend -v ${PWD}/frontend:/app/frontend -it --rm --name lotr-cli lotr-cli From 5cf153be0a0daafa607429f9d40a068b02caf9e6 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Wed, 24 Apr 2024 21:07:06 +0100 Subject: [PATCH 02/10] fixed mongo --- docker/compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/compose.yml b/docker/compose.yml index 537bd98..35a8417 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -11,7 +11,7 @@ services: - 27017:27017 restart: on-failure volumes: - - ./db:/data/db + - ./db:/data backend: # Using the debian version rather than alpine to support binary execution e.g. bcrypt From 985294169d248e3cd4d0e3c299384cf9ec83abc1 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Wed, 24 Apr 2024 21:11:35 +0100 Subject: [PATCH 03/10] mongo restore also fixed --- docker/dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/dockerfile b/docker/dockerfile index b6cd496..4d62e40 100644 --- a/docker/dockerfile +++ b/docker/dockerfile @@ -37,4 +37,4 @@ FROM mongo:7.0-jammy as lotr_mongo COPY ./db/bson /data/init -RUN echo "mongorestore --archive='/data/init'" > /docker-entrypoint-initdb.d/init.sh +RUN echo "mongorestore -d lotr /data/init" > /docker-entrypoint-initdb.d/init.sh From 2a27f9a61c67c9246581d38105d2559e6fcd6f50 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Wed, 24 Apr 2024 22:32:26 +0100 Subject: [PATCH 04/10] fixed backend --- backend/.dockerignore | 1 + backend/Dockerfile | 15 +++++++++++++++ docker/compose.yml | 11 ++++------- 3 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 backend/.dockerignore create mode 100644 backend/Dockerfile diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..f1cc0fa --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,15 @@ +FROM node:21.2 + +WORKDIR /app + +# Copy package.json and package-lock.json if it exists +COPY package.json . + +RUN npm install + +# Copy the rest of the application code +COPY . . + +EXPOSE 3001 + +CMD ["npm", "run", "dev"] diff --git a/docker/compose.yml b/docker/compose.yml index 35a8417..28f9360 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -14,18 +14,15 @@ services: - ./db:/data backend: - # Using the debian version rather than alpine to support binary execution e.g. bcrypt - image: node:21.2 - command: [ "npm", "run", "dev" ] + build: ../backend depends_on: - mongo environment: DATABASE_URL: "mongodb://mongo:27017/lotr" - ports: - - 3001:3001 volumes: - - ../backend:/app - working_dir: /app + - ${PWD}/../backend:/backend + ports: + - "3001:3001" frontend: image: node:21.2-alpine From c17633727d1b2fff35557bca93684185e5f5f7e3 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Wed, 24 Apr 2024 22:56:24 +0100 Subject: [PATCH 05/10] moved stuff to seprate files, all works now --- .gitignore | 2 ++ docker/compose.yml | 12 +++++------- frontend/.dockerignore | 1 + frontend/Dockerfile | 15 +++++++++++++++ makefile | 2 +- 5 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 frontend/.dockerignore create mode 100644 frontend/Dockerfile diff --git a/.gitignore b/.gitignore index 7d0a66a..c0b4390 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ dump bk backend/dist docker/db +docker/backend +docker/frontend diff --git a/docker/compose.yml b/docker/compose.yml index 28f9360..ae72139 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -25,12 +25,10 @@ services: - "3001:3001" frontend: - image: node:21.2-alpine - command: [ "npm", "run", "start" ] + build: ../frontend depends_on: - - backend - ports: - - 3000:3000 + - mongo volumes: - - ../frontend:/app - working_dir: /app + - ${PWD}/../frontend:/frontend + ports: + - "3000:3000" diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..d83b85f --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,15 @@ +FROM node:21.2-alpine + +WORKDIR /app + +# Copy package.json and package-lock.json if it exists +COPY package.json . + +RUN npm install + +# Copy the rest of the application code +COPY . . + +EXPOSE 3000 + +CMD [ "npm", "run", "start" ] diff --git a/makefile b/makefile index 9bee421..938d292 100644 --- a/makefile +++ b/makefile @@ -5,7 +5,7 @@ build: # start and stop the local environment up: - docker compose -f docker/compose.yml up -d + docker compose -f docker/compose.yml up down: docker compose -f docker/compose.yml down From 61d241ad3682ae36eab02f77f8f71c6c11054ec1 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Wed, 1 May 2024 22:46:57 +0100 Subject: [PATCH 06/10] keep only CLI --- docker/dockerfile | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/docker/dockerfile b/docker/dockerfile index 4d62e40..6117907 100644 --- a/docker/dockerfile +++ b/docker/dockerfile @@ -25,16 +25,4 @@ RUN getent passwd $USER_ID || adduser --disabled-password --gecos '' --uid $USER # Set the active user and open the interactive terminal USER user -ENTRYPOINT [ "bash" ] - - - -################ -### DATABASE ### -################ - -FROM mongo:7.0-jammy as lotr_mongo - -COPY ./db/bson /data/init - -RUN echo "mongorestore -d lotr /data/init" > /docker-entrypoint-initdb.d/init.sh +ENTRYPOINT [ "bash" ] \ No newline at end of file From e5d8ba27e0caf0e923d54f3610f6dfa55486461a Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Wed, 1 May 2024 22:47:21 +0100 Subject: [PATCH 07/10] separate things and fix docker on mac --- .gitignore | 1 + db/dockerfile | 7 +++++++ docker/compose.yml | 6 ++---- makefile | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 db/dockerfile diff --git a/.gitignore b/.gitignore index c0b4390..9b3f044 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ db/bk db/bson/user.bson db/bson/user.metadata.json db/init-prod.js +db/db sample-app/node_modules docker-compose.yml .idea diff --git a/db/dockerfile b/db/dockerfile new file mode 100644 index 0000000..560954d --- /dev/null +++ b/db/dockerfile @@ -0,0 +1,7 @@ +FROM mongo:7.0-jammy as lotr_mongo + +COPY ./bson/* /db/data/init/ + +EXPOSE 27017 + +RUN echo "mongorestore -d lotr db/data/init" > /docker-entrypoint-initdb.d/init.sh diff --git a/docker/compose.yml b/docker/compose.yml index ae72139..dd0f494 100644 --- a/docker/compose.yml +++ b/docker/compose.yml @@ -2,16 +2,14 @@ name: lotr services: mongo: build: - context: .. - dockerfile: docker/dockerfile - target: lotr_mongo + context: ../db environment: MONGO_INITDB_DATABASE: lotr ports: - 27017:27017 restart: on-failure volumes: - - ./db:/data + - ${PWD}/../db:/data backend: build: ../backend diff --git a/makefile b/makefile index 938d292..9bee421 100644 --- a/makefile +++ b/makefile @@ -5,7 +5,7 @@ build: # start and stop the local environment up: - docker compose -f docker/compose.yml up + docker compose -f docker/compose.yml up -d down: docker compose -f docker/compose.yml down From ab5bf22a230540a2f71cb7da64f6c59230ca76b9 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Wed, 1 May 2024 22:50:52 +0100 Subject: [PATCH 08/10] update md file --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2edb66d..a36da49 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,10 +53,10 @@ With Version 2, this Open Source project is now open for contribution! You can h test> use lotr lotr> ``` -- the database files are stored in `./docker/db/` - to restore from the original, stop the running containers, delete that directory, and bring the environment back up: +- the database files are stored in `./db/db/` - to restore from the original, stop the running containers, delete that directory, and bring the environment back up: ``` make down - sudo rm -rf ./docker/db + sudo rm -rf ./db/db make up ``` From bc791ac71f0561e4e9d7577da3f9e369137c9c73 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Thu, 2 May 2024 10:58:38 +0100 Subject: [PATCH 09/10] removed comment --- backend/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index f1cc0fa..464e21c 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,7 +2,6 @@ FROM node:21.2 WORKDIR /app -# Copy package.json and package-lock.json if it exists COPY package.json . RUN npm install From 05730c45b7609141528b4b60f217c38f8d587f68 Mon Sep 17 00:00:00 2001 From: Mateusz Kikmunter Date: Thu, 2 May 2024 11:00:38 +0100 Subject: [PATCH 10/10] removed comment --- frontend/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index d83b85f..703428c 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -2,7 +2,6 @@ FROM node:21.2-alpine WORKDIR /app -# Copy package.json and package-lock.json if it exists COPY package.json . RUN npm install