dev container

agnusdei·2024년 7월 25일
  • package.json
scripts: {
	"dev:container": "docker container prune -f && docker image prune -a -f && docker network prune -f && docker volume prune -f && docker system prune -a -f && docker-compose -f docker-compose.local.yml up -d --build",
}
    

  • docker compose
services:
  database:
    restart: always
    image: postgres:latest
    environment:
      - POSTGRES_USER=lepisode
      - POSTGRES_PASSWORD=88782314p*
      - POSTGRES_DB=apayu
    ports:
      - '5432:5432'
    volumes:
      - postgres_data:/var/lib/postgresql/data

  server:
    restart: always
    build:
      dockerfile: ./Dockerfile.dev.container
    ports:
      - '3000:3000'
    volumes:
      - server_data:/app/server
    depends_on:
      - database
    command: ['npx', 'nx', 'serve', 'server', '--port', '3000', '--configuration=local']

  admin:
    restart: always
    build:
      dockerfile: ./Dockerfile.dev.container
    ports:
      - '4200:3000'
    volumes:
      - admin_data:/app/admin
    command: ['nx', 'dev', 'admin', '--port', '3000', '--configuration=local']

  app:
    restart: always
    build:
      dockerfile: ./Dockerfile.dev.container
    ports:
      - '4201:3000'
    volumes:
      - app_data:/app/app
    command: ['nx', 'start', 'app', '--port', '3000', '--configuration=local', '--verbose']

volumes:
  postgres_data:
  server_data:
  admin_data:
  app_data:


  • docker
FROM node:alpine

WORKDIR /app

COPY . .

RUN npm install -g nx
RUN npm install -f
RUN npx prisma generate

  • devcontainer.json
{
  "name": "dev container",
  "dockerComposeFile": "docker-compose.dev.yml",
  "service": "dev",
  "workspaceFolder": "apps",
  "extensions": ["ms-vscode.cpptools", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode"],
  "forwardPorts": [3000, 4201, 4200, 5432],
  "postCreateCommand": "npm install"
}
profile
DevSecOps Pentest🚩

0개의 댓글