3.5 KiB
You can install and run Coder using the official Docker images published on GitHub Container Registry.
Requirements
Docker is required. See the official installation documentation.
Note that the below steps are only supported on a Linux distribution. If on macOS, please run Coder via the standalone binary.
docker run
Built-in database (quick)
For proof-of-concept deployments, you can run a complete Coder instance with the following command.
export CODER_DATA=$HOME/.config/coderv2-docker
export DOCKER_GROUP=$(getent group docker | cut -d: -f3)
mkdir -p $CODER_DATA
docker run --rm -it \
-v $CODER_DATA:/home/coder/.config \
-v /var/run/docker.sock:/var/run/docker.sock \
--group-add $DOCKER_GROUP \
ghcr.io/coder/coder:latest
External database
For production deployments, we recommend using an external PostgreSQL database
(version 13 or higher). Set CODER_ACCESS_URL
to the external URL that users
and workspaces will use to connect to Coder.
export DOCKER_GROUP=$(getent group docker | cut -d: -f3)
docker run --rm -it \
-e CODER_ACCESS_URL="https://coder.example.com" \
-e CODER_PG_CONNECTION_URL="postgresql://username:password@database/coder" \
-v /var/run/docker.sock:/var/run/docker.sock \
--group-add $DOCKER_GROUP \
ghcr.io/coder/coder:latest
docker compose
Coder's publishes a docker-compose example which includes an PostgreSQL container and volume.
-
Make sure you have Docker Compose installed.
-
Download the
docker-compose.yaml
file. -
Update
group_add:
indocker-compose.yaml
with thegid
ofdocker
group. You can get thedocker
groupgid
by running the below command:getent group docker | cut -d: -f3
-
Start Coder with
docker compose up
-
Visit the web ui via the configured url.
-
Follow the on-screen instructions log in and create your first template and workspace
Coder configuration is defined via environment variables. Learn more about Coder's configuration options.
Note: In order to use cloud-based templates (e.g. Kubernetes, AWS), you must have an external URL that users and workspaces will use to connect to Coder.
For proof-of-concept deployments, you can use Coder's tunnel.
For production deployments, we recommend setting an access URL
Note: Coder runs as a non-root user, we use
--group-add
to ensure Coder has permissions to manage Docker viadocker.sock
. If the host systems/var/run/docker.sock
is not group writeable or does not belong to thedocker
group, the above may not work as-is.
Troubleshooting
Docker-based workspace is stuck in "Connecting..."
Ensure you have an externally-reachable CODER_ACCESS_URL
set. See
troubleshooting templates for
more steps.
Permission denied while trying to connect to the Docker daemon socket
See Docker's official documentation to Manage Docker as a non-root user