diff --git a/docker-compose.yaml b/docker-compose.yaml index 0df9b6713c19a..a8beab8129ad5 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,10 +6,11 @@ services: - "7080:7080" environment: CODER_PG_CONNECTION_URL: "postgresql://${POSTGRES_USER:-username}:${POSTGRES_PASSWORD:-password}@database/${POSTGRES_DB:-coder}?sslmode=disable" + # 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_ADDRESS: "0.0.0.0:7080" - # You'll need to set CODER_ACCESS_URL to an - # externally-reachable IP to use non-Docker examples! - CODER_ACCESS_URL: "${CODER_ACCESS_URL:-http://host.docker.internal:7080}" + CODER_ACCESS_URL: "${CODER_ACCESS_URL}" volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: diff --git a/examples/docker-image-builds/main.tf b/examples/docker-image-builds/main.tf index 935842084fab3..76beb4796597b 100644 --- a/examples/docker-image-builds/main.tf +++ b/examples/docker-image-builds/main.tf @@ -94,8 +94,9 @@ resource "docker_container" "workspace" { # Hostname makes the shell more user friendly: coder@my-workspace:~$ hostname = lower(data.coder_workspace.me.name) dns = ["1.1.1.1"] - command = ["sh", "-c", coder_agent.dev.init_script] - env = ["CODER_AGENT_TOKEN=${coder_agent.dev.token}"] + # Use the docker gateway if the access URL is 127.0.0.1 + command = ["sh", "-c", replace(coder_agent.dev.init_script, "127.0.0.1", "host.docker.internal")] + env = ["CODER_AGENT_TOKEN=${coder_agent.dev.token}"] host { host = "host.docker.internal" ip = "host-gateway" diff --git a/examples/docker/main.tf b/examples/docker/main.tf index a999f66d158f1..7900a1f36278f 100644 --- a/examples/docker/main.tf +++ b/examples/docker/main.tf @@ -47,7 +47,6 @@ variable "step2_arch" { provider "docker" { host = "unix:///var/run/docker.sock" } - provider "coder" { } @@ -82,8 +81,9 @@ resource "docker_container" "workspace" { # Hostname makes the shell more user friendly: coder@my-workspace:~$ hostname = lower(data.coder_workspace.me.name) dns = ["1.1.1.1"] - command = ["sh", "-c", coder_agent.dev.init_script] - env = ["CODER_AGENT_TOKEN=${coder_agent.dev.token}"] + # Use the docker gateway if the access URL is 127.0.0.1 + command = ["sh", "-c", replace(coder_agent.dev.init_script, "127.0.0.1", "host.docker.internal")] + env = ["CODER_AGENT_TOKEN=${coder_agent.dev.token}"] host { host = "host.docker.internal" ip = "host-gateway"