I’ve got this massive dependency on docker for an image that is literally:
FROM scratch
COPY zig-out/release/gatorcat-0.4.7-x86_64-linux-musl gatorcat
ENTRYPOINT ["/gatorcat"]
I’ve wrapped this in a zig script, like tigerbeetle, but I still don’t like requiring docker to be installed on my system, or in CI if I can get away with not doing that. my docker release script
My understanding is OCI images are just tar files with some json… anyone tried making one without docker build yet or is interested in collaborating?
I don’t know how stuck you are with needing Docker at all ? Or even Linux ? I know it’s become an entrenched part of most systems and impossible to avoid now, especially if you are working for a corporate.
podman might be able to simplify your environment.. maybe ?
Not the most useful comment - but if you can deploy to BSD / illumos or whatever, these Docker dependencies are no longer needed at least.
a docker image and thus the linux kernel is a prerequisite to my application running. I am targeting OCI runtimes which run on top of the linux kernel. I could of course just publish my single, beautifully statically linked binary, but sometimes a user (including myself), just wants to download a docker image, and may use docker images as part of a larger configuration management and deployment system.
Obviously not implemented yet but I got the preliminary spec information in there for the JSON files. This actually doesn’t feel out of the realm of possibility. All we have to do is some tar, compression, json files, and hashing in the right order.
It sure does, you can assemble (with b.addWriteFiles and wf.getDirectory()) or commit (and use b.path) a whole filesystem tree and provide it using a LazyPath.
I dont think there is a way to get the automatic (os specific) subpaths of zig-out though.
My use case would be for example to provide all the ssl certifictates to /etc/ssl so the http client can handle https, or to provide a static webroot for a server to host instead of bundling into the exe
here (zig std command) and here are examples on how to stream a directory into a tarball