version: '3.8' volumes: postgres-data: services: app: build: context: . dockerfile: Dockerfile args: # [Choice] Go version 1, 1.18, 1.17 # Append -bullseye or -buster to pin to an OS version. # Use -bullseye variants on local arm64/Apple Silicon. VARIANT: 1-bullseye # Options NODE_VERSION: "lts/*" env_file: # Ensure that the variables in .env match the same variables in devcontainer.json - .env # Security Opt and cap_add allow 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:13 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.)