У меня есть docker-compose в котором запускаются Nginx и Next.js. Однако мне надо оба образа собрать в один Dockerfile, собрать его и отправить в docker-hub
# Stage 1: Build the application
FROM oven/bun:1.2.4 AS builder
WORKDIR /app
COPY package.json bun.lock ./
RUN bun install --frozen-lockfile
COPY . .
RUN bun run build
# Stage 1: Build the application
FROM oven/bun:1.2.4 AS production
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/public ./public
COPY --from=builder /app/messages ./messages
COPY --from=builder /app/package*.json /app/next.config.ts /app/.env.production ./
EXPOSE 3000
CMD ["bun", "run", "start"]
services:
nextjs:
image: ${FRONTEND_IMAGE}
ports:
- '3000:3000'
environment:
- ./.env.production
volumes:
- nextjs-node-modules:/app/node_modules
- nextjs-build:/app/.next
restart: always
networks:
- xtech-network
nginx:
image: nginx:alpine
restart: unless-stopped
ports:
- 80:80
- 443:443
env_file:
- ./.env.production
volumes:
- ./.nginx/nginx.conf:/etc/nginx/nginx.conf
depends_on:
- nextjs
networks:
- xtech-network
networks:
xtech-network:
driver: bridge
volumes:
nextjs-node-modules:
nextjs-build:
http {
server {
listen 80;
location / {
proxy_pass http://nextjs:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
events {
worker_connections 1024;
}