diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8b9b0cb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +.dockerignore +.git +.github +.gitignore +.vscode +dist +docker-compose* +Dockerfile* +node_modules +DB \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..21c754a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +# syntax=docker/dockerfile:1 + +# Build stage +FROM node:lts-alpine AS build + +WORKDIR /app + +COPY --chown=node:node package*.json ./ + +RUN npm ci + +COPY --chown=node:node . . + +RUN npm run build + +USER node + +# Production stage +FROM node:lts-alpine + +ARG PORT +ENV PORT=${PORT} +ARG NODE_ENV +ENV NODE_ENV=${NODE_ENV} + +WORKDIR /app + +COPY --chown=node:node package*.json ./ + +RUN npm ci --omit=dev + +COPY --chown=node:node --from=build /app/src/config ./config +COPY --chown=node:node --from=build /app/dist ./dist + +CMD node dist/main.js \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.db.yml similarity index 96% rename from docker-compose.yml rename to docker-compose.db.yml index 1ff007b..88f840a 100644 --- a/docker-compose.yml +++ b/docker-compose.db.yml @@ -2,7 +2,7 @@ version: '3.8' services: mariadb: - container_name: MariaDB + container_name: mariadb image: mariadb ports: - 3306:3306 diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..a325cc6 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,21 @@ +version: '3.8' + +services: + dongchelin: + container_name: dongchelin + depends_on: + - redis + - mariadb + build: + context: . + # dockerfile: Dockerfile + args: + - NODE_ENV=development + env_file: + - src/config/.env.development + volumes: + - ./dist:/app/dist + environment: + - PORT=3002 + ports: + - 3002:3002