version: '3.8' volumes: postgres-data: services: app: build: context: . dockerfile: Dockerfile args: # Use the VARIANT arg to pick a Debian OS version: buster, bullseye # Use bullseye when on local on arm64/Apple Silicon. VARIANT: bullseye env_file: # Ensure that the variables in .env match the same variables in devcontainer.json - .env # Security Opt and cap_add for C++ based debuggers to work. # See `runArgs`: https://github.com/Microsoft/vscode-docs/blob/main/docs/remote/devcontainerjson-reference.md # security_opt: # - seccomp:unconfined # cap_add: # - SYS_PTRACE volumes: - ..:/workspace:cached # Overrides default command so things don't shut down after the process ends. command: sleep infinity # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function. network_mode: service:db # Uncomment the next line to use a non-root user for all processes. # user: vscode # Use "forwardPorts" in **devcontainer.json** to forward an app port locally. # (Adding the "ports" property to this file will not forward from a Codespace.) db: image: postgres:14.1 restart: unless-stopped volumes: - postgres-data:/var/lib/postgresql/data env_file: # Ensure that the variables in .env match the same variables in devcontainer.json - .env # Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally. # (Adding the "ports" property to this file will not forward from a Codespace.)