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.yml unnecessarily complicated, akin to a sort of Greenspun's docker-compose.yml. The workspace-full image comes with docker-compose. This is not to disparage the power of .gitpod.yml. 🙂
Changes required:
- This repository would grow a Dockerfile, and a
docker-compose.yml file. The Dockerfile could be modeled after .gitpod.Dockerfile
- The Dockerfile could use the
dazzle image as a base image, since buildkit could now be pulled in as an entirely separate container.
- The
docker-compose.yml could 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
dazzle runs from a single docker-compose setting.
- 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 push can reach.
Additional context
Worth noting that this would also work with podman.
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:
To build the
workplace-imagesenvironment, I'd imagine something like:Describe alternatives you've considered
The alternative is to fire up image creation via the contributing instruction.
This has two limitations:
.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:
docker-compose.ymlfile. The Dockerfile could be modeled after.gitpod.Dockerfiledazzleimage as a base image, since buildkit could now be pulled in as an entirely separate container.docker-compose.ymlcould stand up and network the services much as they are now.dazzleruns from a singledocker-composesetting.Changes 1-3 are captured in a PR coming soon.
Change 4 will be captured in a
dazzlePR also coming soon.Current roadblocks:
The registry connection logic of
dazzlevery badly wants to connect overhttpsto the registry. Since the network is just a bridge between containers, I'd rather just figure out how to makehttpwork.Possible improvements:
docker pushcan reach.Additional context
Worth noting that this would also work with
podman.