mirror of
https://github.com/coder/coder.git
synced 2025-07-09 11:45:56 +00:00
name, description, tags, icon
name | description | tags | icon | ||
---|---|---|---|---|---|
Develop in a Nomad Docker Container | Get started with Nomad Workspaces. |
|
/icon/nomad.svg |
Develop in a Nomad Docker Container
This example shows how to use Nomad service tasks to be used as a development environment using docker and host csi volumes.
Prerequisites
Setup
1. Start the CSI Host Volume Plugin
The CSI Host Volume plugin is used to mount host volumes into Nomad tasks. This is useful for development environments where you want to mount persistent volumes into your container workspace.
-
Login to the Nomad server using SSH.
-
Append the following stanza to your Nomad server configuration file and restart the nomad service.
plugin "docker" { config { allow_privileged = true } }
sudo systemctl restart nomad
-
Create a file
hostpath.nomad
with following content:job "hostpath-csi-plugin" { datacenters = ["dc1"] type = "system" group "csi" { task "plugin" { driver = "docker" config { image = "registry.k8s.io/sig-storage/hostpathplugin:v1.10.0" args = [ "--drivername=csi-hostpath", "--v=5", "--endpoint=${CSI_ENDPOINT}", "--nodeid=node-${NOMAD_ALLOC_INDEX}", ] privileged = true } csi_plugin { id = "hostpath" type = "monolith" mount_dir = "/csi" } resources { cpu = 256 memory = 128 } } } }
-
Run the job:
nomad job run hostpath.nomad
2. Setup the Nomad Template
-
Create the template by running the following command:
coder template init nomad-docker cd nomad-docker coder template create
-
Set up Nomad server address and optional authentication:
-
Create a new workspace and start developing.