I am running Coder with Docker Compose on a machine on my local network. When I bring the stack up, it works, I can access the web UI, but when I try to create a template I see these errors in the container: coder | 2025-10-12 21:05:28.689 [info] provisionerd-11d65d8b4af3-0: unpacking template source archive session_id=558519f1-5b8b-4802-87e2-1da5bea8a1f1 size_bytes=10240coder | 2025-10-12 21:05:31.721 [info] provisionerd-11d65d8b4af3-0: clean stale Terraform plugins cache_path=/home/coder/.cache/coder/provisioner-0/tfcoder | 2025-10-12 21:05:42.288 [erro] coderd.update_checker: init failed ...coder | error= update check failed:coder | github.com/coder/coder/v2/coderd/updatecheck.(*Checker).initcoder | /home/runner/work/coder/coder/coderd/updatecheck/updatecheck.go:123coder | - client do:coder | github.com/coder/coder/v2/coderd/updatecheck.(*Checker).updatecoder | /home/runner/work/coder/coder/coderd/updatecheck/updatecheck.go:186coder | - Get "https://api.github.com/repos/coder/coder/releases/latest": dial tcp: lookup api.github.com on 127.0.0.11:53: read udp 127.0.0.1:59501->127.0.0.11:53: i/o timeoutcoder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="Error: Error accessing remote module registry"coder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output=" on main.tf line 125:"coder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output=" 125: module \"code-server\" {"coder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="Failed to retrieve available versions for module \"code-server\" (main.tf:125)"coder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="from registry.coder.com: failed to request discovery document: Get"coder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="\"https://registry.coder.com/.well-known/terraform.json\": net/http: request"coder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="canceled while waiting for connection (Client.Timeout exceeded while awaiting"coder | 2025-10-12 21:05:51.752 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output=headers).coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="Error: Error accessing remote module registry"coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output=" on main.tf line 137:"coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output=" 137: module \"jetbrains\" {"coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="Failed to retrieve available versions for module \"jetbrains\" (main.tf:137)"coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="from registry.coder.com: failed to request discovery document: Get"coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="\"https://registry.coder.com/.well-known/terraform.json\": dial tcp: lookup"coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="registry.coder.com on 127.0.0.11:53: read udp 127.0.0.1:48380->127.0.0.11:53:"coder | 2025-10-12 21:05:51.753 [erro] provisionerd-11d65d8b4af3-0.runner: template import provision job logged job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 level=ERROR output="i/o timeout."coder | 2025-10-12 21:05:51.754 [info] provisionerd-11d65d8b4af3-0.runner: dry-run provision failure job_id=c280e0d3-792b-43f6-a110-4fc77f166e47 error="initialize terraform: exit status 1"coder | 2025-10-12 21:05:51.758 [info] provisionerd-11d65d8b4af3-0: recv done on Session session_id=558519f1-5b8b-4802-87e2-1da5bea8a1f1coder | 2025-10-12 21:05:53.159 [warn] coderd: GET host=coder.mydomain.com path=/api/v2/debug/health proto=HTTP/1.1 remote_addr=172.20.0.1 start="2025-10-12T21:05:23.155975226Z" response_body="{\"message\":\"Healthcheck is in progress and did not complete in time. Try again in a few seconds.\"}\n" requestor_id=22259539-8408-4053-823f-3505071d2550 requestor_name=jackenyon requestor_email=jackenyon@gmail.com took=30.003968557s status_code=503 latency_ms=30003 request_id=bebe173a-0fef-4a2c-b0d4-eb056f56f9db
And I see these Terraform errors in the web UI as it tries to build the template: Initializing the backend...Initializing modules...Error: Error accessing remote module registry on main.tf line 125: 125: module "code-server" {Failed to retrieve available versions for module "code-server" (main.tf:125)from registry.coder.com: failed to request discovery document: Get"https://registry.coder.com/.well-known/terraform.json": net/http: requestcanceled while waiting for connection (Client.Timeout exceeded while awaitingheaders).Error: Error accessing remote module registry on main.tf line 137: 137: module "jetbrains" {Failed to retrieve available versions for module "jetbrains" (main.tf:137)from registry.coder.com: failed to request discovery document: Get"https://registry.coder.com/.well-known/terraform.json": dial tcp: lookupregistry.coder.com on 127.0.0.11:53: read udp 127.0.0.1:48380->127.0.0.11:53:i/o timeout.
I am able to ping/cURL both of these URLs from the host, but they fail inside the container. Here is my compose.yml: ---networks:coder_net:{}volumes:coder_data:dind_storage:services:docker-in-docker:image:docker:dindcontainer_name:coder-docker-in-dockerprivileged:truevolumes: -${DOCKER_IN_DOCKER_DATA_DIR:-dind_storage}:/var/lib/dockernetworks:coder_net:expose: -2375command:["dockerd", "--host=tcp://0.0.0.0:2375"]healthcheck:test:["CMD", "nc", "-z", "localhost", "2375"]interval:10stimeout:5sretries:3start_period:20scoder:# This MUST be stable for our documentation and# other automations.image:ghcr.io/coder/coder:${CODER_VERSION:-latest}container_name:coderports: -${CODER_HTTP_PORT:-7080}:7080environment:## For Docker-in-DockerDOCKER_HOST:tcp://docker-in-docker:2375CODER_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 hostvolumes: -/var/run/docker.sock:/var/run/docker.sockdepends_on:database:condition:service_healthydocker-in-docker:condition:service_healthynetworks: -coder_netdatabase:image:"postgres:${POSTGRES_IMG_VERSION:-14.2}"container_name:coder-db# ports:# - ${POSTGRES_PORT:-5432}:5432environment: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/datahealthcheck:test:["CMD-SHELL","pg_isready -U ${POSTGRES_USER:-coder} -d ${POSTGRES_DB:-coder}",]interval:5stimeout:5sretries:5networks: -coder_netIn my.env file, I've set the Docker group (995 according togetent group docker | cut -d: -f3), and I've set the CODER_ACCESS_URL tohttps://coder.mydomain.com andhttp://192.168.1.7:7080 to test both, with the same results both times. I've tried adding DNS to the containers, using host networking for the Coder container (this breaks connectivity to the database and DinD containers), setting my/etc/docker/daemon.json to: {"dns": ["8.8.8.8","1.1.1.1"]}And none of this is working. For some reason I cannot create workspaces or templates in Coder. |