建立 docker compose

docker-compose.yml

version: '3.8'

services:

  postgres:
    image: postgres:15
    container_name: some-postgres
    restart: always
    ports:
      - "5432:5432"  # 對外開放 port
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: mysecretpassword

  web:
    container_name: nextjs-dev
    build:
      context: .
      dockerfile: dockerfile
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NODE_ENV=development
      - CHOKIDAR_USEPOLLING=true
      - POSTGRES_POSTGRES_URL=postgresql://postgres:mysecretpassword@some-postgres:5432/postgres
    command: npm run dev
    depends_on:
      - postgres

執行

docker-compose up

透過這個方式可以將 nextjs 專案變成在 docker中開啟 並連接 postgres 添加 depends_on 確保 postgres 已開啟

剩下的問題是 在本地修改時不會 hot reload 雖然設定了 volumes 但似乎沒有奏效

Last updated