@@ -40,6 +40,9 @@ resource "coder_agent" "dev" {
40
40
code-server --auth none --port 13337 &
41
41
sudo service docker start
42
42
coder dotfiles -y 2>&1 | tee ~/.personalize.log
43
+
44
+ # Install Nix into our bash profile so `nix-shell`, `nix-build, and `nix` are available
45
+ echo '. /home/coder/.nix-profile/etc/profile.d/nix.sh' >> /home/coder/.bashrc
43
46
EOF
44
47
}
45
48
@@ -86,6 +89,33 @@ resource "docker_volume" "home_volume" {
86
89
}
87
90
}
88
91
92
+ resource "docker_volume" "nix_volume" {
93
+ name = " coder-${ data . coder_workspace . me . id } -home"
94
+ # Protect the volume from being deleted due to changes in attributes.
95
+ lifecycle {
96
+ ignore_changes = all
97
+ }
98
+ # Add labels in Docker to keep track of orphan resources.
99
+ labels {
100
+ label = " coder.owner"
101
+ value = data. coder_workspace . me . owner
102
+ }
103
+ labels {
104
+ label = " coder.owner_id"
105
+ value = data. coder_workspace . me . owner_id
106
+ }
107
+ labels {
108
+ label = " coder.workspace_id"
109
+ value = data. coder_workspace . me . id
110
+ }
111
+ # This field becomes outdated if the workspace is renamed but can
112
+ # be useful for debugging or cleaning out dangling volumes.
113
+ labels {
114
+ label = " coder.workspace_name_at_creation"
115
+ value = data. coder_workspace . me . name
116
+ }
117
+ }
118
+
89
119
resource "coder_metadata" "home_info" {
90
120
resource_id = docker_volume. home_volume . id
91
121
item {
@@ -137,6 +167,11 @@ resource "docker_container" "workspace" {
137
167
volume_name = docker_volume. home_volume . name
138
168
read_only = false
139
169
}
170
+ volumes {
171
+ container_path = " /nix"
172
+ volume_name = docker_volume. nix_volume . name
173
+ read_only = false
174
+ }
140
175
# Add labels in Docker to keep track of orphan resources.
141
176
labels {
142
177
label = " coder.owner"
0 commit comments