@@ -2,71 +2,26 @@ terraform {
22 required_providers {
33 coder = {
44 source = " coder/coder"
5- version = " 0.4.3 "
5+ version = " 0.4.5 "
66 }
77 docker = {
88 source = " kreuzwerker/docker"
9- version = " ~> 2.16.0 "
9+ version = " ~> 2.20.2 "
1010 }
1111 }
1212}
1313
14- # Admin parameters
15-
16- # Comment this out if you are specifying a different docker
17- # host on the "docker" provider below.
18- variable "step1_docker_host_warning" {
19- description = <<- EOF
20- This template will use the Docker socket present on
21- the Coder host, which is not necessarily your local machine.
22-
23- You can specify a different host in the template file and
24- suppress this warning.
25- EOF
26- validation {
27- condition = contains ([" Continue using /var/run/docker.sock on the Coder host" ], var. step1_docker_host_warning )
28- error_message = " Cancelling template create."
29- }
30-
31- sensitive = true
32- }
33- variable "step2_arch" {
34- description = <<- EOF
35- arch: What architecture is your Docker host on?
36-
37- note: codercom/enterprise-* images are only built for amd64
38- EOF
39-
40- validation {
41- condition = contains ([" amd64" , " arm64" , " armv7" ], var. step2_arch )
42- error_message = " Value must be amd64, arm64, or armv7."
43- }
44- sensitive = true
45- }
46- variable "step3_OS" {
47- description = <<- EOF
48- What operating system is your Coder host on?
49- EOF
50-
51- validation {
52- condition = contains ([" MacOS" , " Windows" , " Linux" ], var. step3_OS )
53- error_message = " Value must be MacOS, Windows, or Linux."
54- }
55- sensitive = true
14+ data "coder_provisioner" "me" {
5615}
5716
5817provider "docker" {
59- host = var. step3_OS == " Windows" ? " npipe:////.//pipe//docker_engine" : " unix:///var/run/docker.sock"
60- }
61-
62- provider "coder" {
6318}
6419
6520data "coder_workspace" "me" {
6621}
6722
6823resource "coder_agent" "main" {
69- arch = var . step2_arch
24+ arch = data . coder_provisioner . me . arch
7025 os = " linux"
7126 startup_script = << EOF
7227 #!/bin/sh
@@ -104,11 +59,10 @@ variable "docker_image" {
10459 " codercom/enterprise-intellij:ubuntu" , " codercom/enterprise-golang:ubuntu" ], var. docker_image )
10560 error_message = " Invalid Docker image!"
10661 }
107-
10862}
10963
11064resource "docker_volume" "home_volume" {
111- name = " coder-${ data . coder_workspace . me . owner } -${ data . coder_workspace . me . name } -home"
65+ name = " coder-${ data . coder_workspace . me . owner } -${ lower ( data. coder_workspace . me . name ) } -home"
11266}
11367
11468resource "docker_container" "workspace" {
@@ -121,12 +75,7 @@ resource "docker_container" "workspace" {
12175 dns = [" 1.1.1.1" ]
12276 # Use the docker gateway if the access URL is 127.0.0.1
12377 command = [
124- " sh" , " -c" ,
125- << EOT
126- trap '[ $? -ne 0 ] && echo === Agent script exited with non-zero code. Sleeping infinitely to preserve logs... && sleep infinity' EXIT
127- ${ replace (coder_agent. main . init_script , " localhost" , " host.docker.internal" )}
128- EOT
129- ]
78+ " sh" , " -c" , replace (coder_agent. main . init_script , " localhost" , " host.docker.internal" )]
13079 env = [" CODER_AGENT_TOKEN=${ coder_agent . main . token } " ]
13180 host {
13281 host = " host.docker.internal"
0 commit comments