+25
-7
Dockerfile
+25
-7
Dockerfile
···
1
-
FROM node:latest
1
+
FROM oven/bun:slim AS base
2
+
2
3
WORKDIR /app
3
4
4
-
COPY package.json pnpm-lock.yaml .npmrc ./
5
+
FROM base AS deps
6
+
COPY package.json bun.lock* ./
7
+
RUN bun install --no-save --frozen-lockfile
5
8
6
-
RUN npm install -g pnpm
9
+
FROM base AS builder
10
+
WORKDIR /app
11
+
COPY --from=deps /app/node_modules ./node_modules
12
+
COPY . .
7
13
8
-
RUN pnpm install
14
+
RUN bun run build
9
15
10
-
COPY . .
16
+
FROM base AS runner
17
+
WORKDIR /app
11
18
12
-
RUN pnpm run build
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
13
31
14
32
EXPOSE 3000
15
33
16
-
CMD ["pnpm", "run", "start"]
34
+
CMD ["bun", "./server.js"]
+21
-7
docker-compose.yml
+21
-7
docker-compose.yml
···
1
-
version: '3'
2
1
services:
3
-
tts:
4
-
container_name: mw-web
5
-
image: mw-web
6
-
restart: unless-stopped
7
-
ports:
8
-
- "7000:3000"
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