-
Notifications
You must be signed in to change notification settings - Fork 333
Open
Labels
Description
Is your feature request related to a problem? Please describe
Indirectly. I'd like to fix #1020, which is affecting my ability to hack on a C++ project within GitPod.
Describe the behaviour you'd like
I would love to be able to fire up a workspace-images build with just a docker-compose command. Something like:
docker-compose run gitpod-io/workspace-images:latest ./build-all.sh
To build the workplace-images environment, I'd imagine something like:
docker build -t gitpod-io/workspace-images:latest .
Describe alternatives you've considered
The alternative is to fire up image creation via the contributing instruction.
This has two limitations:
- It couples image creation strongly to GitPod. This isn't ideal for those who pay-as-we-go on GitPod, and would like to limit burning our credits when not necessary.
- It makes
.gitpod.ymlunnecessarily complicated, akin to a sort of Greenspun'sdocker-compose.yml. Theworkspace-fullimage comes withdocker-compose. This is not to disparage the power of.gitpod.yml. 🙂
Changes required:
- This repository would grow a Dockerfile, and a
docker-compose.ymlfile. The Dockerfile could be modeled after.gitpod.Dockerfile - The Dockerfile could use the
dazzleimage as a base image, since buildkit could now be pulled in as an entirely separate container. - The
docker-compose.ymlcould stand up and network the services much as they are now. - Dazzle would want to get a buildkit address from something other than a CLI flag, to avoid needing to pass that flag on every call. My bias would be toward an env var. This would make it simple to pass to all
dazzleruns from a singledocker-composesetting. - If the above incantation is too verbose, it could be wrapped into a script.
Changes 1-3 are captured in a PR coming soon.
Change 4 will be captured in a dazzle PR also coming soon.
Current roadblocks:
The registry connection logic of dazzle very badly wants to connect over https to the registry. Since the network is just a bridge between containers, I'd rather just figure out how to make http work.
Possible improvements:
- Complete images are moved to a registry not within docker-compose. This could be a passable option for them to get written pretty much anywhere
docker pushcan reach.
Additional context
Worth noting that this would also work with podman.