This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
JWT_SECRET=your-random-secret-key-min-32-chars
|
||||
APP_ENCRYPTION_KEY=your-32-char-encryption-key
|
||||
DEFAULT_ADMIN_USERNAME=admin
|
||||
DEFAULT_ADMIN_PASSWORD=admin
|
||||
@@ -0,0 +1,33 @@
|
||||
# Stage 1: Build web
|
||||
FROM node:20-alpine AS web-builder
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
COPY apps/web/package*.json ./apps/web/
|
||||
COPY apps/server/package*.json ./apps/server/
|
||||
RUN npm ci
|
||||
COPY . .
|
||||
RUN npm run build -w apps/web
|
||||
|
||||
# Stage 2: Build server
|
||||
FROM node:20-alpine AS server-builder
|
||||
WORKDIR /app
|
||||
COPY --from=web-builder /app/node_modules ./node_modules
|
||||
COPY --from=web-builder /app/package*.json ./
|
||||
COPY --from=web-builder /app/apps/web ./apps/web
|
||||
COPY --from=web-builder /app/apps/server ./apps/server
|
||||
RUN npm run build -w apps/server
|
||||
|
||||
# Stage 3: Production
|
||||
FROM node:20-alpine
|
||||
WORKDIR /app
|
||||
ENV NODE_ENV=production
|
||||
COPY --from=server-builder /app/node_modules ./node_modules
|
||||
COPY --from=server-builder /app/package*.json ./
|
||||
COPY --from=server-builder /app/apps/server/package*.json ./apps/server/
|
||||
COPY --from=server-builder /app/apps/server/dist ./apps/server/dist
|
||||
COPY --from=server-builder /app/apps/web/dist ./apps/web/dist
|
||||
|
||||
EXPOSE 3001
|
||||
VOLUME ["/app/apps/server/data"]
|
||||
|
||||
CMD ["node", "apps/server/dist/index.js"]
|
||||
@@ -0,0 +1,22 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
vod-manager:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile
|
||||
container_name: aliyun-vod-manager
|
||||
ports:
|
||||
- "3001:3001"
|
||||
environment:
|
||||
- PORT=3001
|
||||
- NODE_ENV=production
|
||||
- JWT_SECRET=${JWT_SECRET:-change-me-in-production}
|
||||
- JWT_EXPIRES_IN=7d
|
||||
- APP_ENCRYPTION_KEY=${APP_ENCRYPTION_KEY:-}
|
||||
- DEFAULT_ADMIN_USERNAME=${DEFAULT_ADMIN_USERNAME:-admin}
|
||||
- DEFAULT_ADMIN_PASSWORD=${DEFAULT_ADMIN_PASSWORD:-admin}
|
||||
- DB_PATH=/app/apps/server/data/vod-manager.db
|
||||
volumes:
|
||||
- ./data:/app/apps/server/data
|
||||
restart: unless-stopped
|
||||
Reference in New Issue
Block a user