4 ms·
Show HN: Container-compose – A Docker-compose like tool for Apple containers
Hey HN, recently Apple release their own container manager tooling, but it's missing a "compose-like" tool.
I'm building this CLI as a side-project and a way to help on the usage with the main tool.
It's in a early version, then at the moment I'm trying to be as much as possible compatible with `docker-compose` config file, and in the current version we're supporting two commands: `up` and `down`.
- yodon 1y agoAny thoughts or insights into why Apple didn't ship docker-compose support?
- Noghartt 1y agoTo be honest, I'm not sure why they didn't already release it supporting a compose-like tool. But my hypothesis is that considering they release a v0.1.0, they tried to be lean on their CLI and maybe they're building something on top of it.
- figmert 1y agoIt took Podman a good 2 or so years to develop a good docker compatible http api. I presume that's why. There's no point in coming out with all of the features when they can release with some support, and add on top of it.
- WhyNotHugo 1y agoEven today, some docker-compose features still don’t work with podman. There’s just an absurd amount of subtleties and edge cases, but pretty much all my usages hit one of these or another.
- esseph 1y agoBiggest reason is that docker / podman/OCI are very different architectures and security models. I hope there is something new. The tooling and deployment fragmentation is a nightmare. From a security and open standards pov, we maybe should be moving to podman/OCI. The docker tooling was often focused on the dev experience and it showed, but it wasn't a system with a good security model and this transition is a large part of that pain.
- elisiariocouto 1y agoExcellent work! Any reason why don’t implement this as a plugin for the container CLI?
- Noghartt 1y agoThanks! > Any reason why don’t implement this as a plugin for the container CLI? I did a different CLI because, considering that Apple released their v0.1.0, I'm not sure if they're working in some kind of official support for compose YAMLs. With that in mind, I tried to avoid coupling it into the container CLI, to avoid injecting any kind of breaking change or something else which could cause any issue in the future.
- develatio 1y agoHow does networking between several “services” (containers) work?
- Noghartt 1y agoThe container opens a gateway and each container provides its own local IP (e.g. 192.168.64.2), from what I understood, every services known host machine and can communicate with each other. On my current implementation, I didn't work with DNS/Network Resolution because I need to understand better what I can/can't do with the API Apple provides, so the only things it does is handling the port mapping using `socat`, as the docs recommends.
- daft_pink 1y agoHoping that VSCode supports Apple Containers in a similar way to it supporting Docker Containers. I’ve tried Podman to use less resources on my Mac, but found that the developer tooling in things like VSCode makes Docker a bit sticky.
- esseph 1y agoLooking at the ecosystem between docker and podman/oci, I hope the OCI tooling gets better. I know docker is easier to dev on for many currently, it's also been around longer, but there is a widening gap between docker deployments in production and podman deployments in production and it isn't nearly as smooth or secure as either should be.
- baobun 1y agoDoes anything still break in that Docker tooling if you use it with the podman socket via DOCKER_HOST?
- cedws 1y agoIs the container CLI actually intended for end users? My impression was that it's just a demo project showing off the Containerization API. I'm guessing that BuildKit will eventually support Apple's container runtime via the Containerization API.
- fnordian 1y agoI hope apple will deliver a docker compatible api soon, so that all the existing tools will just work.
- cosmotic 1y agoOr Docker migrate to the new API, like they did with QEMU to Virtualization Framework.
- egorfine 1y agoI have opened a pull request with an extraordinary important change for you.