# docker-compose.override.yml
services:
rails:
volumes:
- ~/.config/gh/hosts.yml:/root/.config/gh/hosts.yml
# .gitignore or .git/info/exclude
docker-compose.override.yml
.devcontainer/devcontainer.json
# .devcontainer/devcontainer.json
{
"name": "Rails",
"dockerComposeFile": [
"../docker-compose.yml",
"../docker-compose.override.yml"
],
"service": "rails",
"workspaceFolder": "/workspace",
"runServices": ["rails"]
}
To use the GitHub CLI (a.k.a.
gh) on devcontainer, you need to pass credentials for that.If you run
gh auth loginon the host side, the credentials will be stored at~/.config/gh/hosts.yml, so mounting it on the container side will work.Maybe it can be difficult to include this setting in
docker-compose.ymlsince it is the developer's preference whether to useghand devcontainer or not. In such case, it would be nice to add that setting todocker-compose.override.yml, and ignore these files from Git.Normally,
docker-composecommand will automatically mergedocker-compose.override.ymlintodocker-compose.yml, but in this case you need to specify it explicitly as follows: