Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 9 additions & 26 deletions react-express-mongodb/backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,33 +1,16 @@
# syntax=docker/dockerfile:1.4
FROM node:22-alpine

FROM node:lts-buster-slim AS development
WORKDIR /app

# Create app directory
WORKDIR /usr/src/app
COPY package-lock.json ./

COPY package.json /usr/src/app/package.json
COPY package-lock.json /usr/src/app/package-lock.json
COPY .npmrc .
COPY .yarnrc.yml .
RUN npm ci
COPY package.json ./

COPY . .

COPY . /usr/src/app
RUN npm ci

EXPOSE 3000

CMD [ "npm", "run", "dev" ]

FROM development as dev-envs
RUN <<EOF
apt-get update
apt-get install -y --no-install-recommends git
EOF

RUN <<EOF
useradd -s /bin/bash -m vscode
groupadd docker
usermod -aG docker vscode
EOF
# install Docker tools (cli, buildx, compose)
COPY --from=gloursdocker/docker / /
CMD [ "npm", "run", "dev" ]
CMD ["npm","start" ]

87 changes: 44 additions & 43 deletions react-express-mongodb/compose.yaml
Original file line number Diff line number Diff line change
@@ -1,47 +1,48 @@
services:
frontend:
build:
frontend:
build:
context: frontend
target: development
ports:
- 3000:3000
stdin_open: true
volumes:
- ./frontend:/usr/src/app
- /usr/src/app/node_modules
restart: always
networks:
- react-express
depends_on:
- backend

backend:
restart: always
build:
context: backend
target: development
volumes:
- ./backend:/usr/src/app
- /usr/src/app/node_modules
depends_on:
- mongo
networks:
- express-mongo
- react-express
expose:
- 3000
mongo:
restart: always
image: mongo:4.2.0
volumes:
- mongo_data:/data/db
networks:
- express-mongo
expose:
- 27017
container_name: frontend
ports:
- 3000:3000
restart: unless-stopped
networks:
- app-network
depends_on:
- backend
volumes:
- ./frontend:/app
- /app/node_modules
backend:
build:
context: backend
container_name: backend
expose::
- 3000
restart: unless-stopped
networks:
- app-network
- db
volumes:
- ./backend:/app
- /app/node_modules
depends_on:
- db
db:
image: mongo:8.0
container_name: db
restart: always
networks:
- db
ports:
- 27017:27017
volumes:
- ./data:/data/db
networks:
react-express:
express-mongo:

app-network:
driver: bridge
db:
driver: bridge
volumes:
mongo_data:
mongo_data:

40 changes: 6 additions & 34 deletions react-express-mongodb/frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,43 +1,15 @@
# syntax=docker/dockerfile:1.4
FROM node:22-alpine

# Create image based on the official Node image from dockerhub
FROM node:lts-buster AS development
WORKDIR /app

# Create app directory
WORKDIR /usr/src/app
COPY package*.json ./

# Copy dependency definitions
COPY package.json /usr/src/app
COPY package-lock.json /usr/src/app
COPY package-lock.json ./

# Install dependecies
#RUN npm set progress=false \
# && npm config set depth 0 \
# && npm i install
COPY .npmrc .
COPY .yarnrc.yml .
RUN npm ci

# Get all the code needed to run the app
COPY . /usr/src/app
COPY . .

# Expose the port the app runs in
EXPOSE 3000

# Serve the app
CMD ["npm", "start"]

FROM development as dev-envs
RUN <<EOF
apt-get update
apt-get install -y --no-install-recommends git
EOF

RUN <<EOF
useradd -s /bin/bash -m vscode
groupadd docker
usermod -aG docker vscode
EOF
# install Docker tools (cli, buildx, compose)
COPY --from=gloursdocker/docker / /
CMD [ "npm", "start" ]
CMD ["npm","start"]