Skip to content

Commit 1ea88ab

Browse files
committed
convert docker_env to map
1 parent b74e984 commit 1ea88ab

File tree

1 file changed

+24
-12
lines changed
  • examples/templates/devcontainer-docker

1 file changed

+24
-12
lines changed

examples/templates/devcontainer-docker/main.tf

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,24 @@ locals {
110110
git_author_name = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
111111
git_author_email = data.coder_workspace_owner.me.email
112112
repo_url = data.coder_parameter.repo.value == "custom" ? data.coder_parameter.custom_repo_url.value : data.coder_parameter.repo.value
113+
# The envbuilder provider requires a key-value map of environment variables.
114+
envbuilder_env = {
115+
"CODER_AGENT_TOKEN": coder_agent.main.token,
116+
# Use the docker gateway if the access URL is 127.0.0.1
117+
"CODER_AGENT_URL": replace(data.coder_workspace.me.access_url, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal"),
118+
"ENVBUILDER_GIT_URL": local.repo_url,
119+
# Use the docker gateway if the access URL is 127.0.0.1
120+
"ENVBUILDER_INIT_SCRIPT": replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal"),
121+
"ENVBUILDER_FALLBACK_IMAGE": data.coder_parameter.fallback_image.value,
122+
"ENVBUILDER_CACHE_REPO": var.cache_repo,
123+
"ENVBUILDER_DOCKER_CONFIG_BASE64": try(data.local_sensitive_file.cache_repo_dockerconfigjson[0].content_base64, ""),
124+
"ENVBUILDER_PUSH_IMAGE": var.cache_repo == "" ? "" : "true",
125+
#"ENVBUILDER_INSECURE": "true", # Uncomment if testing with an insecure registry.
126+
}
127+
# Convert the above map to the format expected by the docker provider.
128+
docker_env = [
129+
for k, v in local.envbuilder_env : "${k}=${v}"
130+
]
113131
}
114132

115133
data "local_sensitive_file" "cache_repo_dockerconfigjson" {
@@ -155,6 +173,8 @@ resource "envbuilder_cached_image" "cached" {
155173
builder_image = local.devcontainer_builder_image
156174
git_url = local.repo_url
157175
cache_repo = var.cache_repo
176+
extra_env = local.envbuilder_env
177+
#insecure = true # Uncomment if testing with an insecure registry.
158178
}
159179

160180
resource "docker_container" "workspace" {
@@ -164,18 +184,10 @@ resource "docker_container" "workspace" {
164184
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
165185
# Hostname makes the shell more user friendly: coder@my-workspace:~$
166186
hostname = data.coder_workspace.me.name
167-
# Use the docker gateway if the access URL is 127.0.0.1
168-
env = [
169-
"CODER_AGENT_TOKEN=${coder_agent.main.token}",
170-
"CODER_AGENT_URL=${replace(data.coder_workspace.me.access_url, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")}",
171-
"ENVBUILDER_GIT_URL=${local.repo_url}",
172-
"ENVBUILDER_INIT_SCRIPT=${replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")}",
173-
"ENVBUILDER_FALLBACK_IMAGE=${data.coder_parameter.fallback_image.value}",
174-
"ENVBUILDER_CACHE_REPO=${var.cache_repo}",
175-
"ENVBUILDER_DOCKER_CONFIG_BASE64=${try(data.local_sensitive_file.cache_repo_dockerconfigjson[0].content_base64, "")}",
176-
"ENVBUILDER_PUSH_IMAGE=${var.cache_repo == "" ? "" : "true"}",
177-
#"ENVBUILDER_INSECURE=true", # Uncomment if testing with a registry running on `localhost`.
178-
]
187+
# Use the environment specified by the envbuilder provider, if available.
188+
# FIXME: https://github.com/coder/terraform-provider-envbuilder/issues/31
189+
#env = var.cache_repo == "" ? local.docker_env : envbuilder_cached_image.cached.0.env
190+
env = local.docker_env
179191
# network_mode = "host" # Uncomment if testing with a registry running on `localhost`.
180192
host {
181193
host = "host.docker.internal"

0 commit comments

Comments
 (0)