4.9 KiB
Dogfooding Guide
This guide explains how to dogfood coder for employees at Coder.
How to
The following explains how to do certain things related to dogfooding.
Dogfood using Coder's Deployment
- Go to
https://dev.coder.com/templates/coder-ts
- If you don't have an account, sign in with GitHub
- If you see a dialog/pop-up, hit "Cancel" (this is because of Rippling)
- Create a workspace
- Connect with your favorite IDE
- Clone the repo:
git clone git@github.com:coder/coder.git
- Follow the contributing guide
Run Coder in your Coder Workspace
-
Clone the Git repo
[https://github.com/coder/coder](https://github.com/coder/coder)
andcd
into it -
Run
sudo apt update
and thensudo apt install -y netcat
- skip this step if using the
coder
template
- skip this step if using the
-
Run
make bin
-
Run
./scripts/develop.sh
which will start two separate processes:[http://localhost:3000](http://localhost:3000)
— backend API server 👈 Backend devs will want to talk to this[http://localhost:8080](http://localhost:8080)
— Node.js dev server 👈 Frontend devs will want to talk to this
-
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 runningscripts/develop.sh
. -
A template named
docker-amd64
(ordocker-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! -
To create your own template, you can do:
./scripts/coder-dev.sh templates init
and choose your preferred option. For example, choosing “Develop in Docker” will create a new folderdocker
that contains the bare bones for starting a Docker workspace template. Then, enter the folder that was just created and customize as you wish.
Troubleshooting
My Docker containers keep failing and I have no idea what's going on!
✔ Queued [236ms]
✔ Setting up [5ms]
⧗ Starting workspace
Terraform 1.1.9
coder_agent.dev: Plan to create
docker_volume.home_volume: Plan to create
docker_container.workspace[0]: Plan to create
Plan: 3 to add, 0 to change, 0 to destroy.
coder_agent.dev: Creating...
coder_agent.dev: Creation complete after 0s [id=b2f132bd-9af1-48a7-81dc-187a18ee00d5]
docker_volume.home_volume: Creating...
docker_volume.home_volume: Creation complete after 0s [id=coder-maf-mywork-root]
docker_container.workspace[0]: Creating...
docker_container.workspace[0]: Creation errored after 0s
Error: container exited immediately
✘ Starting workspace [2045ms]
terraform apply: exit status 1
Run 'coder create --help' for usage.
Check the output of docker ps -a
- If you see a container with the status
Exited
rundocker logs <container name>
and see what the issue with the container output is
Enable verbose container logging for Docker:
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.orig
sudo cat > /etc/docker/daemon.json << EOF
{
"debug": true,
"log-driver": "journald"
}
EOF
sudo systemctl restart docker
# You should now see container logs in journald.
# Try starting a workspace again and see what the actual error is!
sudo journalctl -u docker -f
Help! I'm still blocked
Post in the #dogfood Slack channel internally or open a Discussion on GitHub and tag @jsjoeio or @bpmct