@@ -56,6 +56,11 @@ resource "coder_agent" "dev" {
56
56
if [ -n "$DOTFILES_URI" ]; then
57
57
coder dotfiles "$DOTFILES_URI" -y 2>&1 | tee ~/.personalize.log
58
58
fi
59
+
60
+
61
+ # Install Nix into our bash profile so `nix-shell`, `nix-build, and `nix` are available
62
+ echo '. /home/coder/.nix-profile/etc/profile.d/nix.sh' >> /home/coder/.bashrc
63
+ bash /opt/nix/install --no-daemon
59
64
EOF
60
65
}
61
66
@@ -102,6 +107,33 @@ resource "docker_volume" "home_volume" {
102
107
}
103
108
}
104
109
110
+ resource "docker_volume" "nix_volume" {
111
+ name = " coder-${ data . coder_workspace . me . id } -nix"
112
+ # Protect the volume from being deleted due to changes in attributes.
113
+ lifecycle {
114
+ ignore_changes = all
115
+ }
116
+ # Add labels in Docker to keep track of orphan resources.
117
+ labels {
118
+ label = " coder.owner"
119
+ value = data. coder_workspace . me . owner
120
+ }
121
+ labels {
122
+ label = " coder.owner_id"
123
+ value = data. coder_workspace . me . owner_id
124
+ }
125
+ labels {
126
+ label = " coder.workspace_id"
127
+ value = data. coder_workspace . me . id
128
+ }
129
+ # This field becomes outdated if the workspace is renamed but can
130
+ # be useful for debugging or cleaning out dangling volumes.
131
+ labels {
132
+ label = " coder.workspace_name_at_creation"
133
+ value = data. coder_workspace . me . name
134
+ }
135
+ }
136
+
105
137
resource "coder_metadata" "home_info" {
106
138
resource_id = docker_volume. home_volume . id
107
139
item {
@@ -153,6 +185,11 @@ resource "docker_container" "workspace" {
153
185
volume_name = docker_volume. home_volume . name
154
186
read_only = false
155
187
}
188
+ volumes {
189
+ container_path = " /nix"
190
+ volume_name = docker_volume. nix_volume . name
191
+ read_only = false
192
+ }
156
193
# Add labels in Docker to keep track of orphan resources.
157
194
labels {
158
195
label = " coder.owner"
0 commit comments