feat: docker compose
This commit is contained in:
43
.dockerignore
Normal file
43
.dockerignore
Normal file
@@ -0,0 +1,43 @@
|
||||
# compiled output
|
||||
/dist
|
||||
/node_modules
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# OS
|
||||
.DS_Store
|
||||
|
||||
# Tests
|
||||
/coverage
|
||||
/.nyc_output
|
||||
|
||||
# IDEs and editors
|
||||
/.idea
|
||||
.project
|
||||
.classpath
|
||||
.c9/
|
||||
*.launch
|
||||
.settings/
|
||||
*.sublime-workspace
|
||||
|
||||
# IDE - VSCode
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
|
||||
patch/dist
|
||||
tmp
|
||||
out
|
||||
release.zip
|
||||
|
||||
run
|
||||
|
||||
data
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -38,4 +38,6 @@ tmp
|
||||
out
|
||||
release.zip
|
||||
|
||||
run
|
||||
run
|
||||
|
||||
data
|
||||
|
||||
@@ -1,22 +1,44 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
prod:
|
||||
container_name: mx-space-server
|
||||
image: mx-space-server:1.0.0
|
||||
app:
|
||||
container_name: mx-server
|
||||
image: innei/mx-server:0.2.1
|
||||
restart: 'unless-stopped'
|
||||
build:
|
||||
context: .
|
||||
target: production
|
||||
dockerfile: ./Dockerfile
|
||||
command: npm run start:prod
|
||||
args:
|
||||
redis_host: 'redis'
|
||||
db_host: 'mongo'
|
||||
ports:
|
||||
- 2333:2333
|
||||
- '2333:2333'
|
||||
depends_on:
|
||||
- mongo
|
||||
- redis
|
||||
links:
|
||||
- mongo
|
||||
- redis
|
||||
networks:
|
||||
- nesjs-network
|
||||
volumes:
|
||||
- .:/usr/src/app
|
||||
- /usr/src/app/node_modules
|
||||
restart: unless-stopped
|
||||
- app-network
|
||||
|
||||
mongo:
|
||||
container_name: mongo
|
||||
image: mongo
|
||||
volumes:
|
||||
- ./data:/data/db
|
||||
ports:
|
||||
- '3344:27017'
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
redis:
|
||||
image: redis
|
||||
container_name: redis
|
||||
|
||||
ports:
|
||||
- '3333:6379'
|
||||
networks:
|
||||
- app-network
|
||||
networks:
|
||||
nesjs-network:
|
||||
app-network:
|
||||
driver: bridge
|
||||
|
||||
56
dockerfile
56
dockerfile
@@ -1,36 +1,34 @@
|
||||
FROM node:16 as development
|
||||
|
||||
RUN npm i -g pnpm
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
COPY package.json ./
|
||||
COPY pnpm-lock.yaml ./
|
||||
|
||||
RUN pnpm install glob rimraf
|
||||
|
||||
RUN pnpm install --only=development
|
||||
|
||||
FROM node:16 as builder
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
|
||||
RUN pnpm run build
|
||||
|
||||
FROM node:16 as production
|
||||
|
||||
RUN npm i -g pnpm
|
||||
RUN pnpm install
|
||||
RUN pnpm bundle
|
||||
|
||||
ARG NODE_ENV=production
|
||||
ENV NODE_ENV=${NODE_ENV}
|
||||
FROM node:16
|
||||
ARG redis_host
|
||||
ARG mongo_host
|
||||
RUN apt update
|
||||
RUN apt install zip unzip mongo-tools -y
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
WORKDIR /app
|
||||
COPY --from=builder /app/out .
|
||||
EXPOSE 2333
|
||||
CMD node index.js --redis_host=redis --db_host=mongo
|
||||
|
||||
COPY package.json ./
|
||||
COPY pnpm-lock.yaml ./
|
||||
# FROM node:16-alpine as builder
|
||||
# WORKDIR /app
|
||||
# COPY . .
|
||||
# RUN apk add libtool autoconf automake make g++ python2 python3 --no-cache
|
||||
# RUN npm i -g pnpm
|
||||
# RUN pnpm install
|
||||
# RUN pnpm bundle
|
||||
|
||||
RUN pnpm install --only=production
|
||||
RUN pnpm install pm2 --D
|
||||
COPY . .
|
||||
# FROM node:16-alpine
|
||||
# RUN apk add zip unzip --no-cache
|
||||
# RUN apk add mongodb-tools --no-cache
|
||||
|
||||
COPY --from=development /usr/src/app/dist ./dist
|
||||
|
||||
CMD ["pm2-prod", "ecosystem.config.js"]
|
||||
# WORKDIR /app
|
||||
# COPY --from=builder /app/out .
|
||||
# EXPOSE 2333
|
||||
# CMD ["node", "index.js"]
|
||||
|
||||
@@ -21,9 +21,9 @@ export const CROSS_DOMAIN = {
|
||||
export const MONGO_DB = {
|
||||
collectionName: (argv.collection_name as string) || 'mx-space',
|
||||
get uri() {
|
||||
return `mongodb://127.0.0.1:${argv.dbport || '27017'}/${
|
||||
process.env.TEST ? 'mx-space_unitest' : this.collectionName
|
||||
}`
|
||||
return `mongodb://${argv.db_host || '127.0.0.1'}:${
|
||||
argv.db_port || '27017'
|
||||
}/${process.env.TEST ? 'mx-space_unitest' : this.collectionName}`
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user