Задать вопрос
zenithxxl
@zenithxxl
Веб-разработчик

Как связать Next.js и Nginx в Dockerfile?

У меня есть 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;
}
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы