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: