docs: simplify docker installation docs (#12187)

This commit is contained in:
Muhammad Atif Ali 2024-02-16 15:53:03 +03:00 committed by GitHub
parent be1edc3995
commit 799d71f6b2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 40 additions and 45 deletions

View File

@ -9,7 +9,11 @@ Docker is required. See the
> Note that the below steps are only supported on a Linux distribution. If on
> macOS, please [run Coder via the standalone binary](./index.md#manual).
## Run Coder with the built-in database (quick)
<div class="tabs">
## docker run
**Built-in database (quick)**
For proof-of-concept deployments, you can run a complete Coder instance with the
following command.
@ -25,78 +29,69 @@ docker run --rm -it \
ghcr.io/coder/coder:latest
```
**<sup>Note:</sup>** <sup>Coder runs as a non-root user, we use `--group-add` to
ensure Coder has permissions to manage Docker via `docker.sock`. If the host
systems `/var/run/docker.sock` is not group writeable or does not belong to the
`docker` group, the above may not work as-is.</sup>
Coder configuration is defined via environment variables. Learn more about
Coder's [configuration options](../admin/configure.md).
<div class="tabs">
## docker run
**External database**
For production deployments, we recommend using an external PostgreSQL database
(version 13 or higher). Set `ACCESS_URL` to the external URL that users and
workspaces will use to connect to Coder.
(version 13 or higher). Set `CODER_ACCESS_URL` to the external URL that users
and workspaces will use to connect to Coder.
```shell
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
```
Coder configuration is defined via environment variables. Learn more about
Coder's [configuration options](../admin/configure.md).
## docker compose
Coder's publishes a
[docker-compose example](https://github.com/coder/coder/blob/main/docker-compose.yaml)
which includes an PostgreSQL container and volume.
1. Install [Docker Compose](https://docs.docker.com/compose/install/)
1. Make sure you have [Docker Compose](https://docs.docker.com/compose/install/)
installed.
2. Clone the `coder` repository:
2. Download the
[`docker-compose.yaml`](https://github.com/coder/coder/blob/main/docker-compose.yaml)
file.
3. Update `group_add:` in `docker-compose.yaml` with the `gid` of `docker`
group. You can get the `docker` group `gid` by running the below command:
```shell
git clone https://github.com/coder/coder.git
getent group docker | cut -d: -f3
```
3. Start Coder with `docker compose up`:
4. Start Coder with `docker compose up`
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.
5. Visit the web ui via the configured url.
For proof-of-concept deployments, you can use
[Coder's tunnel](../admin/configure.md#tunnel):
```shell
cd coder
docker compose up
```
For production deployments, we recommend setting an
[access URL](../admin/configure.md#access-url):
```shell
cd coder
CODER_ACCESS_URL=https://coder.example.com docker compose up
```
4. Visit the web ui via the configured url. You can add `/login` to the base url
to create the first user via the ui.
5. Follow the on-screen instructions log in and create your first template and
6. Follow the on-screen instructions log in and create your first template and
workspace
</div>
Coder configuration is defined via environment variables. Learn more about
Coder's [configuration options](../admin/configure.md).
> **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](../admin/configure.md#tunnel).
> >
> > For production deployments, we recommend setting an
> > [access URL](../admin/configure.md#access-url)
> **Note:** Coder runs as a non-root user, we use `--group-add` to ensure Coder
> has permissions to manage Docker via `docker.sock`. If the host systems
> `/var/run/docker.sock` is not group writeable or does not belong to the
> `docker` group, the above may not work as-is.
## Troubleshooting
### Docker-based workspace is stuck in "Connecting..."