Skip to content

Commit fa1e555

Browse files
committed
chore: update docker-compose and Dockerfile to use named volumes and add migration service
1 parent ed3e997 commit fa1e555

File tree

2 files changed

+33
-3
lines changed

2 files changed

+33
-3
lines changed

Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ FROM deps-dev AS build
2727

2828
COPY . .
2929

30+
# Generate Prisma client
31+
RUN npx prisma generate
32+
3033
RUN pnpm run build:ci
3134

3235
# Production stage - Minimal runtime image
@@ -39,7 +42,10 @@ COPY --from=deps /app/node_modules ./node_modules
3942

4043
# Copy built application
4144
COPY --from=build /app/dist ./dist
45+
COPY --from=build /app/generated ./generated
46+
COPY --from=build /app/prisma ./prisma
4247
COPY package.json ./
48+
COPY prisma.config.ts ./
4349

4450
# Create data directory and set permissions for node user
4551
RUN mkdir -p /app/data && chown -R node:node /app/data
@@ -56,6 +62,9 @@ ENV NODE_ENV=development
5662

5763
COPY . .
5864

65+
# Generate Prisma client
66+
RUN npx prisma generate
67+
5968
# Create data directory and set permissions for node user
6069
RUN mkdir -p /app/data && chown -R node:node /app/data
6170

docker-compose.yml

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ services:
1414
environment:
1515
- NODE_ENV=production
1616
volumes:
17-
- ./logs:/app/logs
18-
- ./data:/app/data
17+
- prod_logs:/app/logs
18+
- prod_data:/app/data # Named volume - persists outside repo
1919

2020
discord-bot-dev:
2121
build:
@@ -34,4 +34,25 @@ services:
3434
- ./logs:/app/logs
3535
- ./data:/app/data
3636
ports:
37-
- "9229:9229" # For debugging
37+
- "9229:9229" # For debugging
38+
39+
# Run database migrations manually when ready
40+
migrate:
41+
build:
42+
context: .
43+
dockerfile: Dockerfile
44+
target: production
45+
container_name: moderation-tool-migrate
46+
profiles: ["tools"]
47+
env_file:
48+
- .env.local
49+
volumes:
50+
- prod_data:/app/data # Use same named volume as production
51+
command: npx prisma migrate deploy
52+
53+
# Named volumes - persist outside the repo directory
54+
volumes:
55+
prod_data:
56+
name: discord-moderation-data
57+
prod_logs:
58+
name: discord-moderation-logs

0 commit comments

Comments
 (0)