Move Dockerfiles into one toplevel Dockerfile

This commit is contained in:
Hyunggyu Jang 2023-03-21 12:40:37 +09:00
parent 1041146fcb
commit c233cc0d5c
5 changed files with 56 additions and 66 deletions

2
.dockerignore Normal file
View file

@ -0,0 +1,2 @@
**/node_modules
**/.env

27
Dockerfile Normal file
View file

@ -0,0 +1,27 @@
FROM node:19-alpine AS react-client
WORKDIR /client
# copy package.json into the container at /client
COPY /client/package*.json /client/
# install dependencies
RUN npm ci
# Copy the current directory contents into the container at /client
COPY /client/ /client/
# Build webpack artifacts
RUN npm run build
FROM node:19-alpine AS node-api
WORKDIR /api
# copy package.json into the container at /api
COPY /api/package*.json /api/
# install dependencies
RUN npm ci
# Copy the current directory contents into the container at /api
COPY /api/ /api/
# Copy the client side code
COPY --from=react-client /client/public /client/public
# Make port 3080 available to the world outside this container
EXPOSE 3080
# Expose the server to 0.0.0.0
ENV HOST=0.0.0.0
# Run the app when the container launches
CMD ["npm", "start"]

View file

@ -1,2 +0,0 @@
/node_modules
.env

View file

@ -1,16 +0,0 @@
FROM node:19-alpine
WORKDIR /api
# copy package.json into the container at /api
COPY package*.json /api/
# install dependencies
RUN npm ci
# Copy the current directory contents into the container at /api
COPY . /api/
# Make port 3080 available to the world outside this container
EXPOSE 3080
# Expose the server to 0.0.0.0
ENV HOST=0.0.0.0
# Run the app when the container launches
CMD ["npm", "start"]
# docker build -t node-api .

View file

@ -1,22 +1,15 @@
version: "2"
version: "3.4"
services:
client:
image: react-client
build: ./client
restart: always
ports:
- "3080:80"
volumes:
- ./client:/client
- /client/node_modules
links:
- api
networks:
- webappnetwork
api:
ports:
- 3080:3080
depends_on:
- mongodb
image: node-api
build: ./api
build:
context: .
target: node-api
restart: always
env_file:
- ./api/.env
@ -24,27 +17,13 @@ services:
- HOST=0.0.0.0
- NODE_ENV=production
- MONGO_URI=mongodb://mongodb:27017/chatgpt-clone
ports:
- "9000:3080"
volumes:
- ./api:/api
- /api/node_modules
depends_on:
- mongodb
networks:
- webappnetwork
mongodb:
image: mongo
restart: always
container_name: mongodb
volumes:
- ./data-node:/data/db
ports:
- 27020:27017
command: mongod --noauth
networks:
- webappnetwork
networks:
webappnetwork:
driver: bridge