--- networks: coder_net: {} volumes: coder_data: dind_storage: services: docker-in-docker: image: docker:dind container_name: coder-docker-in-docker privileged: true volumes: - ${DOCKER_IN_DOCKER_DATA_DIR:-dind_storage}:/var/lib/docker networks: coder_net: expose: - 2375 command: ["dockerd", "--host=tcp://0.0.0.0:2375"] healthcheck: test: ["CMD", "nc", "-z", "localhost", "2375"] interval: 10s timeout: 5s retries: 3 start_period: 20s coder: # This MUST be stable for our documentation and # other automations. image: ghcr.io/coder/coder:${CODER_VERSION:-latest} container_name: coder ports: - ${CODER_HTTP_PORT:-7080}:7080 environment: ## For Docker-in-Docker DOCKER_HOST: tcp://docker-in-docker:2375 CODER_PG_CONNECTION_URL: "postgresql://${POSTGRES_USER:-coder}:${POSTGRES_PASSWORD:-coder}@database/${POSTGRES_DB:-coder}?sslmode=disable" CODER_HTTP_ADDRESS: "0.0.0.0:${CODER_HTTP_PORT:-7080}" # You'll need to set CODER_ACCESS_URL to an IP or domain # that workspaces can reach. This cannot be localhost # or 127.0.0.1 for non-Docker templates! CODER_ACCESS_URL: "${CODER_ACCESS_URL}" # If the coder user does not have write permissions on # the docker socket, you can uncomment the following # lines and set the group ID to one that has write # permissions on the docker socket. group_add: - "${DOCKER_GID:-999}" # docker group on host volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: database: condition: service_healthy docker-in-docker: condition: service_healthy networks: - coder_net database: image: "postgres:${POSTGRES_IMG_VERSION:-14.2}" container_name: coder-db # ports: # - ${POSTGRES_PORT:-5432}:5432 environment: POSTGRES_USER: ${POSTGRES_USER:-coder} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-coder} POSTGRES_DB: ${POSTGRES_DB:-coder} volumes: ## Use "docker volume rm coder_coder_data" to reset Coder - ${CODER_DATA_DIR:-coder_data}:/var/lib/postgresql/data healthcheck: test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-coder} -d ${POSTGRES_DB:-coder}", ] interval: 5s timeout: 5s retries: 5 networks: - coder_net