boilerplate-nestjs-api-crud/docker-compose.yml
2023-04-17 10:20:39 +08:00

65 lines
2.1 KiB
YAML

version: '3.7'
services:
basic-nestjs-app:
image: "${DOCKER_IMAGE_NAME}"
container_name: "basic-nestjs-app"
privileged: false
# NOTE: Docker image user is 'node:node (1000:1000)'
user: "1000:1000"
build:
context: .
dockerfile: ./Dockerfile.dev
args:
org_label_schema_name: "${DOCKER_IMAGE_NAME}"
environment:
ENABLE_DUMMY_DAEMON: "${ENABLE_DUMMY_DAEMON}"
ports:
- "${PUB_APP_PORT}:3000"
# - "${PUB_HTTP_PORT}:80"
# - "${PUB_HTTPS_PORT}:443"
volumes:
# For application development:
- "./.env-app:/home/node/app/.env"
- "./src:/home/node/app/src"
- "./.vscode:/home/node/app/.vscode"
- "./.git:/home/node/app/.git"
- "./.eslintrc.js:/home/node/app/.eslintrc.js"
- "./.gitignore:/home/node/app/.gitignore"
- "./.prettierrc:/home/node/app/.prettierrc"
- "./nest-cli.json:/home/node/app/nest-cli.json"
- "./package.json:/home/node/app/package.json"
- "./tsconfig.build.json:/home/node/app/tsconfig.build.json"
- "./tsconfig.json:/home/node/app/tsconfig.json"
- "./yarn.lock:/home/node/app/yarn.lock"
# In order syncing in git, mount need files as read-only
- "./.gitlab-ci.yml:/home/node/app/.gitlab-ci.yml:ro"
- "./Dockerfile:/home/node/app/Dockerfile:ro"
- "./Dockerfile.dev:/home/node/app/Dockerfile.dev:ro"
- "./docker-compose.yml:/home/node/app/docker-compose.yml:ro"
- "./image_files:/home/node/app/image_files:ro"
# --- For Attach VSCode in container
# - "basic-nestjs-app-data-vscode-server:/home/node/.vscode-server"
- "./data/vscode-server:/home/node/.vscode-server"
# Disable Healthcheck
healthcheck:
test: ["NONE"]
# Without this, will get error when start up in WSL2
network_mode: bridge
links:
- "db"
db:
image: mariadb:10.11
restart: always
environment:
MARIADB_ROOT_PASSWORD: example
# Note: Don't use named volume since the container is running as non-root
# volumes:
# basic-nestjs-app-data-vscode-server: