Skip to content

Conversation

mazdak
Copy link
Contributor

@mazdak mazdak commented Jul 30, 2025

Container Compose brings the convenience of docker-compose to Apple Container, enabling the user to:

  • Define multi-container applications in a single YAML file
  • Manage service dependencies automatically
  • Start, stop, and manage entire application stacks with simple commands
  • Use environment variable interpolation for flexible configurations

Not all features of the docker compose tool are supported due to limitations of the Apple Container system.

@jglogan
Copy link
Contributor

jglogan commented Jul 30, 2025

Hi @mazdak, thanks for the PR!

Please read the PR discussion for #239. It describes the approach you'll need to take to build out a compose plugin.

The other approach would be to create a standalone CLI plugin in a Github project that you host and create a signed installer that puts your plugin under the user-installed plugins directory at /usr/local/libexec/container-plugins.

@mazdak
Copy link
Contributor Author

mazdak commented Jul 30, 2025

Hi @mazdak, thanks for the PR!

Please read the PR discussion for #239. It describes the approach you'll need to take to build out a compose plugin.

The other approach would be to create a standalone CLI plugin in a Github project that you host and create a signed installer that puts your plugin under the user-installed plugins directory at /usr/local/libexec/container-plugins.

Sounds good. I will take a crack at that.

@jglogan
Copy link
Contributor

jglogan commented Jul 30, 2025

Sounds good. I will take a crack at that.

Cool! We here to help either way. If you want to try creating a standalone plugin, open up a discussion and drop a link to it here. We (maintainers at Apple) can't work directly on other repos but we should be able to answer questions in the discussion.

If you're looking at breaking this PR down into a minimally functional plugin as discussed over in the other PR, by all means continue here.

@mazdak mazdak force-pushed the mazdak/container-compose branch from 2153eed to 6660fe6 Compare July 30, 2025 21:05
@mazdak
Copy link
Contributor Author

mazdak commented Jul 30, 2025

Sounds good. I will take a crack at that.

Cool! We here to help either way. If you want to try creating a standalone plugin, open up a discussion and drop a link to it here. We (maintainers at Apple) can't work directly on other repos but we should be able to answer questions in the discussion.

If you're looking at breaking this PR down into a minimally functional plugin as discussed over in the other PR, by all means continue here.

I will say that this PR is 99.9% self contained. Everything Compose related is in its own directory, and tested. Only one change was made to Application to amend the compose cli to the list.

@mazdak mazdak force-pushed the mazdak/container-compose branch from d7cedc6 to 2909e02 Compare July 31, 2025 19:05
@jglogan
Copy link
Contributor

jglogan commented Jul 31, 2025

I will say that this PR is 99.9% self contained. Everything Compose related is in its own directory, and tested. Only one change was made to Application to amend the compose cli to the list.

The other PR is more self-contained; it doesn't hardwire the command into Application.

Self-contained is not the same as "minimally functional". The justification for starting with a "minimally functional" PR and building with PRs for discrete features is over in the other compose PR discussion.

@mazdak
Copy link
Contributor Author

mazdak commented Aug 9, 2025

I will say that this PR is 99.9% self contained. Everything Compose related is in its own directory, and tested. Only one change was made to Application to amend the compose cli to the list.

The other PR is more self-contained; it doesn't hardwire the command into Application.

Self-contained is not the same as "minimally functional". The justification for starting with a "minimally functional" PR and building with PRs for discrete features is over in the other compose PR discussion.

I have refactored this PR to use the plugin architecture

@mazdak mazdak force-pushed the mazdak/container-compose branch 3 times, most recently from b25f0b6 to 294f236 Compare August 9, 2025 12:20
@mazdak mazdak force-pushed the mazdak/container-compose branch from 289dbe9 to 910e005 Compare August 19, 2025 15:58
@mazdak mazdak force-pushed the mazdak/container-compose branch 9 times, most recently from 8a9d2fd to 645301b Compare September 3, 2025 15:11
@Mcrich23
Copy link
Contributor

Hey! So sorry, but in an effort to make plugin development more possible #603 and #635 have lead to the CLI folder being renamed to ContainerCommands and that will impact the merging of your pull request. Just an FYI, so you understand the issue when you are resolving conflicts.

Also, idk if you are using the existing commands at all for your implementation, but if you are #603 exposes all cli commands as structures for other targets, so you can use them without touching the shell environment.

Container Compose brings the convenience of docker-compose to Apple
Container, enabling you to:
- Define multi-container applications in a single YAML file
- Manage service dependencies automatically
- Start, stop, and manage entire application stacks with simple commands
- Use environment variable interpolation for flexible configurations
- Support for multiple --file invocations for compose overrides
- Compatibility with Docker Compose volume syntax
- Support for --rm flag to compose
- Support for --pull and --wait
@mazdak mazdak force-pushed the mazdak/container-compose branch from 84c62a1 to 7466a97 Compare September 21, 2025 21:04
@Mcrich23
Copy link
Contributor

Mcrich23 commented Oct 6, 2025

Quick question @mazdak, does this implementation support anonymous volumes?

Just trying to figure some things out...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants