+25
-7
Dockerfile
+25
-7
Dockerfile
···
1
+
FROM oven/bun:slim AS base
2
+
3
WORKDIR /app
4
5
+
FROM base AS deps
6
+
COPY package.json bun.lock* ./
7
+
RUN bun install --no-save --frozen-lockfile
8
9
+
FROM base AS builder
10
+
WORKDIR /app
11
+
COPY --from=deps /app/node_modules ./node_modules
12
+
COPY . .
13
14
+
RUN bun run build
15
16
+
FROM base AS runner
17
+
WORKDIR /app
18
19
+
ENV NODE_ENV=production \
20
+
PORT=3000 \
21
+
HOSTNAME="0.0.0.0"
22
+
23
+
RUN addgroup --system --gid 1001 nodejs && \
24
+
adduser --system --uid 1001 nextjs
25
+
26
+
COPY --from=builder /app/public ./public
27
+
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
28
+
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
29
+
30
+
USER nextjs
31
32
EXPOSE 3000
33
34
+
CMD ["bun", "./server.js"]
+21
-7
docker-compose.yml
+21
-7
docker-compose.yml
···
1
services:
2
+
web:
3
+
build:
4
+
context: .
5
+
dockerfile: Dockerfile
6
+
container_name: mw-web
7
+
image: mw-web
8
+
restart: unless-stopped
9
+
ports:
10
+
- "7000:3000"
11
+
healthcheck:
12
+
test: ["CMD", "curl", "-f", "-I", "http://localhost:3000"]
13
+
interval: 5m
14
+
timeout: 10s
15
+
retries: 3
16
+
volumes:
17
+
- ./.next/cache:/app/.next/cache
18
+
- ./.env:/app/.env
19
+
dns:
20
+
- 1.1.1.1
21
+
- 8.8.8.8
22
+
- 9.9.9.9