Skip to content

Commit 2dd98c7

Browse files
authored
docs: add dogfooding guide (#3099)
1 parent 51dd1fd commit 2dd98c7

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

dogfood/guide.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# Dogfooding Guide
2+
3+
This guide explains how to [dogfood](https://www.techopedia.com/definition/30784/dogfooding) coder for employees at Coder.
4+
5+
## How to
6+
7+
The following explains how to do certain things related to dogfooding.
8+
9+
### Dogfood using Coder's Deployment
10+
11+
1. Go to [https://dev.coder.com/templates/coder-ts](https://dev.coder.com/templates/coder-ts)
12+
1. If you don't have an account, sign in with GitHub
13+
2. If you see a dialog/pop-up, hit "Cancel" (this is because of Rippling)
14+
2. Create a workspace
15+
3. [Connect with your favorite IDE](https://coder.com/docs/coder-oss/latest/ides)
16+
4. Clone the repo: `git clone git@github.com:coder/coder.git`
17+
5. Follow the [contributing guide](https://coder.com/docs/coder-oss/latest/CONTRIBUTING)
18+
19+
### Run Coder in your Coder Workspace
20+
21+
1. Clone the Git repo `[https://github.com/coder/coder](https://github.com/coder/coder)` and `cd` into it
22+
2. Run `sudo apt update` and then `sudo apt install -y netcat`
23+
- skip this step if using the `coder` template
24+
3. Run `make bin`
25+
26+
<aside>
27+
💡 If you run into the following error:
28+
29+
```js
30+
pg_dump: server version: 13.7 (Debian 13.7-1.pgdg110+1); pg_dump version: 11.16 (Ubuntu 11.16-1.pgdg20.04+1)
31+
pg_dump: aborting because of server version mismatch
32+
```
33+
34+
Don’t fret! This is a known issue. To get around it:
35+
36+
1. Add `export DB_FROM=coderdb` to your `.bashrc` (make sure you `source ~/.bashrc`)
37+
2. Run `sudo service postgresql start`
38+
3. Run `sudo -u postgres psql` (this will open the PostgreSQL CLI)
39+
4. Run `postgres-# alter user postgres password 'postgres';`
40+
5. Run `postgres-# CREATE DATABASE coderdb;`
41+
6. Run `postgres-# grant all privileges on database coderdb to postgres;`
42+
7. Run `exit` to exit the PostgreSQL terminal
43+
8. Try `make bin` again.
44+
</aside>
45+
46+
4. Run `./scripts/develop.sh` which will start _two_ separate processes:
47+
1. `[http://localhost:3000](http://localhost:3000)` — backend API server 👈 Backend devs will want to talk to this
48+
2. `[http://localhost:8080](http://localhost:8080)`Node.js dev server 👈 Frontend devs will want to talk to this
49+
5. Ensure that you’re logged in: `./scripts/coder-dev.sh list` — should return no workspace. If this returns an error, double-check the output of running `scripts/develop.sh`.
50+
6. A template named `docker-amd64` (or `docker-arm64` if you’re on ARM) will have automatically been created for you. If you just want to create a workspace quickly, you can run `./scripts/coder-dev.sh create myworkspace -t docker-amd64` and this will get you going quickly!
51+
7. To create your own template, you can do: `./scripts/coder-dev.sh templates init` and choose your preferred option.
52+
For example, choosing “Develop in Docker” will create a new folder `docker` that contains the bare bones for starting a Docker workspace template.
53+
Then, enter the folder that was just created and customize as you wish.
54+
<aside>
55+
💡 **For all Docker templates:**
56+
This step depends on whether you are developing on a Coder v1 workspace, versus a Coder v2 workspace, versus a VM, versus locally. In any case, check the output of the command `docker context ls` to determine where your Docker daemon is listening. Then open `./docker/main.tf` and check inside the block `provider "docker"` that the variable `"host"` is set correctly.
57+
58+
</aside>
59+
60+
## Troubleshooting
61+
62+
### My Docker containers keep failing and I have no idea what's going on!
63+
64+
```shell
65+
✔ Queued [236ms]
66+
✔ Setting up [5ms]
67+
⧗ Starting workspace
68+
Terraform 1.1.9
69+
coder_agent.dev: Plan to create
70+
docker_volume.home_volume: Plan to create
71+
docker_container.workspace[0]: Plan to create
72+
Plan: 3 to add, 0 to change, 0 to destroy.
73+
coder_agent.dev: Creating...
74+
coder_agent.dev: Creation complete after 0s [id=b2f132bd-9af1-48a7-81dc-187a18ee00d5]
75+
docker_volume.home_volume: Creating...
76+
docker_volume.home_volume: Creation complete after 0s [id=coder-maf-mywork-root]
77+
docker_container.workspace[0]: Creating...
78+
docker_container.workspace[0]: Creation errored after 0s
79+
Error: container exited immediately
80+
81+
✘ Starting workspace [2045ms]
82+
terraform apply: exit status 1
83+
Run 'coder create --help' for usage.
84+
```
85+
86+
Check the output of `docker ps -a`
87+
88+
- If you see a container with the status `Exited` run `docker logs <container name>` and see what the issue with the container output is
89+
90+
Enable verbose container logging for Docker:
91+
92+
```shell
93+
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.orig
94+
sudo cat > /etc/docker/daemon.json << EOF
95+
{
96+
"debug": true,
97+
"log-driver": "journald"
98+
}
99+
EOF
100+
sudo systemctl restart docker
101+
# You should now see container logs in journald.
102+
# Try starting a workspace again and see what the actual error is!
103+
sudo journalctl -u docker -f
104+
```
105+
106+
### Help! I'm still blocked
107+
108+
Post in the #dogfood Slack channel internally or open a Discussion on GitHub and tag @jsjoeio or @bpmct

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy