version: '3.8' services: app: # Using a Dockerfile is optional, but included for completeness. build: context: . dockerfile: Dockerfile args: # Update 'VARIANT' to pick an LTS version of Node.js: 18, 16, 14. # Append -bullseye or -buster to pin to an OS version. # Use -bullseye variants on local arm64/Apple Silicon. VARIANT: 18-bullseye volumes: # This is where VS Code should expect to find your project's source code and the value of "workspaceFolder" in .devcontainer/devcontainer.json - ..:/workspace:cached # Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details. # - /var/run/docker.sock:/var/run/docker.sock # Overrides default command so things don't shut down after the process ends. command: sleep infinity # Runs app on the same network as the service container, allows "forwardPorts" in devcontainer.json function. network_mode: service:db # Use "forwardPorts" in **devcontainer.json** to forward an app port locally. # (Adding the "ports" property to this file will not forward from a Codespace.) # Uncomment the next line to use a non-root user for all processes - See https://aka.ms/vscode-remote/containers/non-root for details. # user: vscode # Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust. # cap_add: # - SYS_PTRACE # security_opt: # - seccomp:unconfined # You can include other services not opened by VS Code as well db: image: postgres:latest restart: unless-stopped volumes: - postgres-data:/var/lib/postgresql/data environment: POSTGRES_USER: postgres POSTGRES_DB: development_db POSTGRES_PASSWORD: postgres db-test: image: postgres:latest restart: unless-stopped volumes: - postgres-test-data:/var/lib/postgresql/data environment: POSTGRES_USER: postgres POSTGRES_DB: test_db POSTGRES_PASSWORD: postgres # As in the "app" service, use "forwardPorts" in **devcontainer.json** to forward an app port locally. volumes: postgres-data: postgres-test-data: