@@ -34,6 +34,9 @@ resource "coder_agent" "dev" {
34
34
code-server --auth none --port 13337 &
35
35
sudo service docker start
36
36
coder dotfiles -y 2>&1 | tee ~/.personalize.log
37
+
38
+ # Install Nix into our bash profile so `nix-shell`, `nix-build, and `nix` are available
39
+ echo '. /home/coder/.nix-profile/etc/profile.d/nix.sh' >> /home/coder/.bashrc
37
40
EOF
38
41
}
39
42
@@ -80,6 +83,33 @@ resource "docker_volume" "home_volume" {
80
83
}
81
84
}
82
85
86
+ resource "docker_volume" "nix_volume" {
87
+ name = " coder-${ data . coder_workspace . me . id } -home"
88
+ # Protect the volume from being deleted due to changes in attributes.
89
+ lifecycle {
90
+ ignore_changes = all
91
+ }
92
+ # Add labels in Docker to keep track of orphan resources.
93
+ labels {
94
+ label = " coder.owner"
95
+ value = data. coder_workspace . me . owner
96
+ }
97
+ labels {
98
+ label = " coder.owner_id"
99
+ value = data. coder_workspace . me . owner_id
100
+ }
101
+ labels {
102
+ label = " coder.workspace_id"
103
+ value = data. coder_workspace . me . id
104
+ }
105
+ # This field becomes outdated if the workspace is renamed but can
106
+ # be useful for debugging or cleaning out dangling volumes.
107
+ labels {
108
+ label = " coder.workspace_name_at_creation"
109
+ value = data. coder_workspace . me . name
110
+ }
111
+ }
112
+
83
113
resource "coder_metadata" "home_info" {
84
114
resource_id = docker_volume. home_volume . id
85
115
item {
@@ -128,6 +158,11 @@ resource "docker_container" "workspace" {
128
158
volume_name = docker_volume. home_volume . name
129
159
read_only = false
130
160
}
161
+ volumes {
162
+ container_path = " /nix"
163
+ volume_name = docker_volume. nix_volume . name
164
+ read_only = false
165
+ }
131
166
# Add labels in Docker to keep track of orphan resources.
132
167
labels {
133
168
label = " coder.owner"
0 commit comments