Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for OCI-compliant build and compose #6406

Open
ericis opened this issue Jun 25, 2024 · 0 comments
Open

Support for OCI-compliant build and compose #6406

ericis opened this issue Jun 25, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@ericis
Copy link

ericis commented Jun 25, 2024

Describe the Feature You Want

OCI-compliant builders and runners including support for the "compose spec".

Current Behavior

There is really great foundational support for OCI builders using custom_build(...) and one supportive issue outlines this progress here: #2589.

However, the out-of-the-box Tilt functions all read docker... (instead of something like container...).

There may be significant room for improvement with docker_compose(...) compatibility including support for the "compose spec".

Why Do You Want This?

I want to use cross-platform, free, and open-source tooling. The docker tooling is not available for free across platforms for all uses with reasonable and free alternatives. Podman Desktop has made incredible progress over the years, especially in the past year with significant releases for Windows and Mac with existing Linux support. Rancher Desktop is another great alternative. Rancher provides an out-of-the-box replacement for docker and docker-compose commands while Podman Desktop still requires some aliasing and post-installation configuration to get working.

The Tilt functions explicitly call on the use of docker... tooling in their function names and there are issues with the alternatives like this discussion thread with Podman Desktop and the use of docker_compose(...) commands.

Additional context

The original post to Slack for convenience:

I have used free and open-source alternatives to Docker Desktop on Windows ever since the licensing changes. My personal favorite is the tremendous progress that Podman Desktop has made over the years and especially just this past year with frequent and significant releases. However, a more reliable fallback is to use Rancher Desktop since it offers a drop-in replacement for docker commands while podman still requires some aliasing trickery.

For Tilt, I caught up on this issue for "Support for podman instead of docker". While the Tilt docker_build(...) functions work seemingly perfectly after aliasing alias docker=podman (on Windows this is a bit different with batch and shell files depending on the terminal used) ... the docker_compose(...) functions are not at all compliant with podman compose, using special command options and flags like --project-directory (see this bug). There are some tricks to register podman compose to use docker-compose under the covers, but this would require either a Docker Desktop or Rancher Desktop installation (on Windows at least); with those installed, the next obvious question would be "why use Podman Desktop at all now?" Wanting a free and open-source option, I naively started a path to develop a custom podman_compose(...) function, but very quickly ran into issues like waiting for a docker_build(...) to finish a named image before the compose file uses it. I'm guessing that there is wickedly smart trickery built into the Go source for these capabilities. It was also odd to see docker_build(...) followed by podman_compose(...).

What would the community's suggestion be as a path forward both for the tactical short-term as well as a more strategic long-term? I'd personally love for the Tilt containerization experience to be more about standards-compliant "open container initiative" tooling, like https://compose-spec.io/ than using docker-specific naming and CLI expectations. I also acknowledge that this type of tooling abstraction requires a cautious and well-intentioned design with deep knowledge across multiple OCI-compatible build and run tools.

Tactically, I may just forego podman 😭 and stick with Rancher Desktop until our community can get a better solution in place. (edited)

@ericis ericis added the enhancement New feature or request label Jun 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant