@@ -26,16 +26,16 @@ module "filebrowser" {
26
26
source = " registry.coder.com/modules/filebrowser/coder"
27
27
version = " 1.0.8"
28
28
agent_id = coder_agent. main . id
29
- folder = " /var/www/html/project "
29
+ folder = " /var/www/html"
30
30
}
31
31
32
32
module "jetbrains_gateway" {
33
33
source = " registry.coder.com/modules/jetbrains-gateway/coder"
34
34
version = " 1.0.9"
35
35
agent_id = coder_agent. main . id
36
36
agent_name = " main"
37
- folder = " /var/www/html/project "
38
- jetbrains_ides = [" GO " , " WS" , " IU" , " PS" ]
37
+ folder = " /var/www/html"
38
+ jetbrains_ides = [" WS" , " IU" , " PS" ]
39
39
default = " IU"
40
40
}
41
41
@@ -63,17 +63,33 @@ resource "coder_app" "phpmyadmin" {
63
63
subdomain = false
64
64
}
65
65
66
+ resource "coder_app" "code-server" {
67
+ agent_id = coder_agent. main . id
68
+ slug = " code-server"
69
+ display_name = " VS Code Online"
70
+ url = " http://localhost:13337/?folder=/var/www/html"
71
+ icon = " /icon/code.svg"
72
+ subdomain = false
73
+ share = " owner"
74
+
75
+ healthcheck {
76
+ url = " http://localhost:13337/healthz"
77
+ interval = 5
78
+ threshold = 6
79
+ }
80
+ }
81
+
66
82
resource "coder_agent" "main" {
67
83
arch = data. coder_provisioner . me . arch
68
84
os = " linux"
69
85
startup_script = " /usr/local/bin/start.sh"
70
86
71
- # dir = "/var/www/html/project "
87
+ dir = " /var/www/html"
72
88
73
89
env = {
74
- GIT_AUTHOR_NAME = coalesce ( data. coder_workspace . me . owner_name , data . coder_workspace . me . owner )
90
+ GIT_AUTHOR_NAME = data.coder_workspace.me.owner
75
91
GIT_AUTHOR_EMAIL = data.coder_workspace.me.owner_email
76
- GIT_COMMITTER_NAME = coalesce ( data. coder_workspace . me . owner_name , data . coder_workspace . me . owner )
92
+ GIT_COMMITTER_NAME = data.coder_workspace.me.owner
77
93
GIT_COMMITTER_EMAIL = data.coder_workspace.me.owner_email
78
94
GITHUB_TOKEN = data.coder_external_auth.github.access_token
79
95
}
@@ -121,7 +137,6 @@ resource "coder_agent" "main" {
121
137
metadata {
122
138
display_name = " Load Average (Host)"
123
139
key = " 6_load_host"
124
- # get load avg scaled by number of cores
125
140
script = << EOT
126
141
echo "`cat /proc/loadavg | awk '{ print $1 }'` `nproc`" | awk '{ printf "%0.2f", $1/$2 }'
127
142
EOT
@@ -140,22 +155,6 @@ resource "coder_agent" "main" {
140
155
}
141
156
}
142
157
143
- resource "coder_app" "code-server" {
144
- agent_id = coder_agent. main . id
145
- slug = " code-server"
146
- display_name = " code-server"
147
- url = " http://localhost:13337/?folder=/var/www/html"
148
- icon = " /icon/code.svg"
149
- subdomain = false
150
- share = " owner"
151
-
152
- healthcheck {
153
- url = " http://localhost:13337/healthz"
154
- interval = 5
155
- threshold = 6
156
- }
157
- }
158
-
159
158
resource "docker_volume" "workspaces" {
160
159
name = " coder-${ data . coder_workspace . me . id } "
161
160
# Protect the volume from being deleted due to changes in attributes.
@@ -211,14 +210,52 @@ data "coder_parameter" "custom_repo_url" {
211
210
mutable = true
212
211
}
213
212
213
+ data "coder_parameter" "home_volume" {
214
+ name = " home_volume"
215
+ display_name = " Home folder volume"
216
+ order = 3
217
+ description = " Select how the Home folder volume will be used."
218
+ mutable = true
219
+
220
+ option {
221
+ name = " Local"
222
+ description = " The volume name will only be associated with this project"
223
+ value = " ${ docker_volume . workspaces . name } -home"
224
+ }
225
+ option {
226
+ name = " Global"
227
+ description = " The volume can be reused for other projects"
228
+ value = " coder-home"
229
+ }
230
+ }
231
+
232
+ data "coder_parameter" "laravel_seed" {
233
+ name = " laravel_seed"
234
+ display_name = " Run Laravel Seeder?"
235
+ order = 4
236
+ description = " Run db:seed command after setting up project."
237
+ type = " bool"
238
+ mutable = true
239
+ default = false
240
+
241
+ option {
242
+ name = " Yes"
243
+ value = true
244
+ }
245
+ option {
246
+ name = " No"
247
+ value = false
248
+ }
249
+ }
250
+
214
251
resource "docker_image" "main" {
215
252
name = " coder-${ data . coder_workspace . me . id } "
216
253
217
254
build {
218
255
context = " ./build"
219
256
build_args = {
220
257
USER = " coder"
221
- WORKDIR = " /var/www/html/project "
258
+ WORKDIR = " /var/www/html"
222
259
}
223
260
}
224
261
@@ -230,10 +267,6 @@ resource "docker_image" "main" {
230
267
resource "docker_container" "workspace" {
231
268
count = data. coder_workspace . me . start_count
232
269
233
- # Find the latest version here:
234
- # https://github.com/coder/envbuilder/tags
235
- # image = "ghcr.io/coder/envbuilder:0.2.8"
236
-
237
270
image = docker_image. main . name
238
271
239
272
# Uses lower() to avoid Docker restriction on container names.
@@ -250,7 +283,8 @@ resource "docker_container" "workspace" {
250
283
" CODER_AGENT_URL=${ replace (data. coder_workspace . me . access_url , " /localhost|127\\ .0\\ .0\\ .1/" , " host.docker.internal" )} " ,
251
284
" INIT_SCRIPT=${ replace (coder_agent. main . init_script , " /localhost|127\\ .0\\ .0\\ .1/" , " host.docker.internal" )} " ,
252
285
" GIT_URL=${ data . coder_parameter . repo . value == " custom" ? data . coder_parameter . custom_repo_url . value : data . coder_parameter . repo . value } " ,
253
- " WORKDIR=/var/www/html/project"
286
+ " WORKDIR=/var/www/html" ,
287
+ " SEED=${ data . coder_parameter . laravel_seed . value } "
254
288
]
255
289
256
290
host {
@@ -259,7 +293,7 @@ resource "docker_container" "workspace" {
259
293
}
260
294
261
295
volumes {
262
- container_path = " /var/www/html/project "
296
+ container_path = " /var/www/html"
263
297
volume_name = docker_volume. workspaces . name
264
298
read_only = false
265
299
}
@@ -278,11 +312,10 @@ resource "docker_container" "workspace" {
278
312
279
313
volumes {
280
314
container_path = " /home/coder"
281
- volume_name = " ${ docker_volume . workspaces . name } -home "
315
+ volume_name = data . coder_parameter . home_volume . value
282
316
read_only = false
283
317
}
284
318
285
- # Add labels in Docker to keep track of orphan resources.
286
319
labels {
287
320
label = " coder.owner"
288
321
value = data. coder_workspace . me . owner
0 commit comments