mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-05 19:20:12 +08:00
fix: dockerfile, production env settings
This commit is contained in:
1 parent
3985d5d089
commit
6fe49c4f38
7 files changed
+52
-58
No files matched your search
@@ -163,6 +163,17 @@ Run Cypress in container, create brand-new containers along with it:
|
||||
|
||||
## Deployment
|
||||
|
||||
Create production env
|
||||
|
||||
cp .env.prod.sample .env.prod
|
||||
|
||||
Edit `.env.prod`
|
||||
|
||||
BASE_URL=https://yourdomain.com # IMPORTANT to make login work
|
||||
SECRET_KEY=xxxx # Change it to something safe!
|
||||
|
||||
Start the service
|
||||
|
||||
# Build the images (only allowed for maintainers)
|
||||
docker compose -f docker-compose.prod.yml build
|
||||
docker compose -f docker-compose.prod.yml push
|
||||
|
||||
+6
-17
@@ -1,26 +1,15 @@
|
||||
# Base stage
|
||||
FROM node:20-alpine as base
|
||||
FROM node:20-alpine as build
|
||||
|
||||
WORKDIR /app
|
||||
COPY package.json yarn.lock tsconfig.json ./
|
||||
COPY packages/file-graph/package.json ./packages/file-graph/package.json
|
||||
COPY packages/utils/package.json ./packages/utils/package.json
|
||||
COPY packages/constants/package.json ./packages/constants/package.json
|
||||
COPY packages/models/package.json ./packages/models/package.json
|
||||
COPY package.json yarn.lock ./
|
||||
COPY app/package.json ./app/package.json
|
||||
COPY server/package.json ./server/package.json
|
||||
RUN yarn install --frozen-lockfile
|
||||
|
||||
# Dev stage
|
||||
FROM base as dev
|
||||
WORKDIR /app/app
|
||||
CMD [ "yarn", "dev:docker", "--host", "0.0.0.0" ]
|
||||
|
||||
# Build stage
|
||||
FROM base as build
|
||||
COPY packages/file-graph ./packages/file-graph
|
||||
COPY packages/utils ./packages/utils
|
||||
COPY packages/constants ./packages/constants
|
||||
COPY packages/models ./packages/models
|
||||
COPY tsconfig.json ./tsconfig.json
|
||||
COPY server ./server
|
||||
COPY packages ./packages
|
||||
COPY app ./app
|
||||
RUN yarn workspace app build
|
||||
|
||||
|
||||
@@ -12,6 +12,11 @@ server {
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
|
||||
location /trpc/ {
|
||||
proxy_pass http://backend:3000;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
|
||||
location /api-docs/ {
|
||||
proxy_pass http://backend:3000;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ services:
|
||||
dockerfile: app/Dockerfile
|
||||
target: prod
|
||||
networks:
|
||||
internal:
|
||||
- internal
|
||||
ports:
|
||||
- 8080:80
|
||||
|
||||
@@ -31,7 +31,7 @@ services:
|
||||
- ./config:/app/config
|
||||
- ./quests:/app/quests:ro
|
||||
env_file:
|
||||
- .env
|
||||
- .env.prod
|
||||
environment:
|
||||
- DOCKER_NETWORK=linux-odyssey-players
|
||||
- BACKEND_URL=http://backend:3000
|
||||
@@ -51,7 +51,7 @@ services:
|
||||
ports:
|
||||
- '3001:3001'
|
||||
env_file:
|
||||
- .env
|
||||
- .env.prod
|
||||
|
||||
db:
|
||||
image: mongo:6
|
||||
@@ -64,7 +64,7 @@ services:
|
||||
- mongo:/data/db
|
||||
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
|
||||
env_file:
|
||||
- .env
|
||||
- .env.prod
|
||||
|
||||
base:
|
||||
image: linuxodyssey/quest-base
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
FROM node:20-alpine as build
|
||||
|
||||
WORKDIR /app
|
||||
COPY ./package.json yarn.lock tsconfig.json ./
|
||||
COPY ./package.json yarn.lock ./
|
||||
COPY packages/analytics/package.json ./packages/analytics/package.json
|
||||
COPY packages/models/package.json ./packages/models/package.json
|
||||
RUN yarn install --frozen-lockfile
|
||||
|
||||
COPY tsconfig.json ./tsconfig.json
|
||||
COPY packages ./packages
|
||||
|
||||
ENV HOST=0.0.0.0
|
||||
ENV PORT=3001
|
||||
EXPOSE 3001
|
||||
|
||||
# Production stage
|
||||
FROM build as prod
|
||||
COPY packages/analytics ./packages/analytics
|
||||
COPY packages/models ./packages/models
|
||||
FROM node:20-alpine as prod
|
||||
COPY --from=build /app/packages/analytics ./packages/analytics
|
||||
ENV NODE_ENV=production
|
||||
WORKDIR /app/packages/analytics
|
||||
RUN yarn build
|
||||
CMD [ "yarn", "start" ]
|
||||
+17
-30
@@ -1,41 +1,28 @@
|
||||
FROM node:20-alpine AS build
|
||||
|
||||
WORKDIR /app
|
||||
COPY ./package.json yarn.lock tsconfig.json ./
|
||||
COPY packages/file-graph/package.json ./packages/file-graph/package.json
|
||||
COPY packages/utils/package.json ./packages/utils/package.json
|
||||
COPY packages/models/package.json ./packages/models/package.json
|
||||
COPY packages/constants/package.json ./packages/constants/package.json
|
||||
COPY ./package.json yarn.lock ./
|
||||
COPY server/package.json ./server/package.json
|
||||
RUN yarn install
|
||||
# Install docker cli
|
||||
COPY --from=docker:dind /usr/local/bin/docker /usr/local/bin/
|
||||
COPY server ./server
|
||||
COPY packages ./packages
|
||||
COPY tsconfig.json ./tsconfig.json
|
||||
RUN yarn workspace server build
|
||||
|
||||
# Production
|
||||
FROM node:20-alpine as prod
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=build /app/node_modules ./node_modules
|
||||
COPY --from=build /app/server ./server
|
||||
COPY ./quests ./quests
|
||||
|
||||
ENV NODE_ENV=production
|
||||
WORKDIR /app/server
|
||||
CMD [ "yarn", "start" ]
|
||||
|
||||
ENV HOST=0.0.0.0
|
||||
ENV PORT=3000
|
||||
EXPOSE 3000
|
||||
|
||||
# Production
|
||||
FROM build as prod
|
||||
|
||||
COPY packages/file-graph ./packages/file-graph
|
||||
COPY packages/utils ./packages/utils
|
||||
COPY packages/models ./packages/models
|
||||
COPY packages/constants ./packages/constants
|
||||
COPY server ./server
|
||||
COPY quests ./quests
|
||||
|
||||
ENV NODE_ENV=production
|
||||
RUN yarn workspace server build
|
||||
WORKDIR /app/server
|
||||
CMD [ "yarn", "start" ]
|
||||
|
||||
# Development
|
||||
FROM build as dev
|
||||
|
||||
RUN yarn install --frozen-lockfile
|
||||
COPY server/nodemon.json ./server/nodemon.json
|
||||
COPY tsconfig.json ./tsconfig.json
|
||||
COPY server/tsconfig.json ./server/tsconfig.json
|
||||
ENV NODE_ENV=development
|
||||
CMD [ "yarn", "server" ]
|
||||
+2
-1
@@ -6,5 +6,6 @@
|
||||
"skipLibCheck": true,
|
||||
"sourceMap": true,
|
||||
"baseUrl": "."
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules", "dist", "*.test.ts"]
|
||||
}
|
||||
Reference in new issue
Block a user