genuinetools / img

Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder.
https://blog.jessfraz.com/post/building-container-images-securely-on-kubernetes/
MIT License
3.88k stars 229 forks source link

Maintaned? #348

Open dene14 opened 2 years ago

dene14 commented 2 years ago

Hello! I'm seeing that last release was a year ago, there is bunch of PRs and issues opened w/o much activity... Is this project being developed or abandoned already?

AkihiroSuda commented 2 years ago

I'm one of the maintainers of img but I have to admit that I don't have enough bandwidth to maintain img.

I'd suggest using the upstream BuildKit directly: https://github.com/moby/buildkit BuildKit also provides a helper script for (pseudo-)daemonless mode: https://github.com/moby/buildkit/blob/master/examples/buildctl-daemonless/buildctl-daemonless.sh

Usage: https://github.com/moby/buildkit#daemonless

# rootful
docker run \
    -it \
    --rm \
    --privileged \
    -v /path/to/dir:/tmp/work \
    --entrypoint buildctl-daemonless.sh \
    moby/buildkit:master \
        build \
        --frontend dockerfile.v0 \
        --local context=/tmp/work \
        --local dockerfile=/tmp/work

# rootless
docker run \
    -it \
    --rm \
    --security-opt seccomp=unconfined \
    --security-opt apparmor=unconfined \
    -e BUILDKITD_FLAGS=--oci-worker-no-process-sandbox \
    -v /path/to/dir:/tmp/work \
    --entrypoint buildctl-daemonless.sh \
    moby/buildkit:master-rootless \
        build \
        --frontend \
        dockerfile.v0 \
        --local context=/tmp/work \
        --local dockerfile=/tmp/work
lel-amri commented 2 years ago

@AkihiroSuda:

Correct me if I'm wrong, img does have very useful features that buildkit doesn't: img can run rootless outside of containers, and it is truely daemonless.

I'm extensively using img for a special use-case: Creating LXC containers from Dockerfile files. I do not use Docker per se and img is the only tool that I could find out there at the time that answered my needs.

I'd really love to see img being more maintained. It seems that @jessfraz, the other carry of this project beside you, also abandoned the project. :(

AkihiroSuda commented 2 years ago

Correct me if I'm wrong, img does have very useful features that buildkit doesn't: img can run rootless outside of containers, and it is truely daemonless.

BuildKit supports rootless too https://github.com/moby/buildkit/blob/master/docs/rootless.md

towolf commented 2 years ago

For me the big advantage is that this project can be used as a drop-in replacement and it presents such a familiar interface that we can basically symlink img to docker and it will work for the most basic use cases. It even works locally like an easy to use standalone binary.

Buildkit rootless and daeminless is a much bigger switch.

mieliespoor commented 1 year ago

Any chance that img could be revived? Possibly adding additional maintainers that could help? Looking at the network graph, it would seem there are active developers that could help with this project.

alpharde commented 1 year ago

I'll have to agree with @towolf, anyone knows a replacement that isn't buildkit?

lel-amri commented 1 year ago

I tried replacing img with buildkit in my workflow. It actually went pretty well. The only "drawback" is (well, "was", it isn't really a problem anymore for me) the fact that you need three binaries to emulate img: buildkitd, buildkitctl and rootlesskit. Other than that, I had no issue bending my scripts to use buildkit instead of img.

So much changed between the version used by img and the latest of buildkit that only someone well versed in buildkit would be able to make the necessaries patches to either maintain or fork img, and I believe none is interested in working on img. I'm now convinced that img can be replaced by builtkitd (with the "deamonless" script) for most of the use cases.