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

caddy-builder broken on hosts where setcap is not supported #290

Open
ptxmac opened this issue Apr 11, 2023 · 5 comments
Open

caddy-builder broken on hosts where setcap is not supported #290

ptxmac opened this issue Apr 11, 2023 · 5 comments

Comments

@ptxmac
Copy link

ptxmac commented Apr 11, 2023

I'm running docker on my Synology NAS.

Synology have their own variant of linux, and they provide the docker installation which is a bit... wonky.

Among other things, setcap is not supported

So when trying to use the caddy:2.5.4-builder image docker fails with:

2023/04/11 21:32:04 [INFO] Setting capabilities (requires admin privileges): [setcap cap_net_bind_service=+ep ./caddy]
Failed to set capabilities on file './caddy': Not supported
2023/04/11 21:32:04 [ERROR] failed to setcap on the binary: exit status 1
The command '/bin/sh -c xcaddy build' returned a non-zero code: 1

Adding ENV XCADDY_SETCAP 0 to my Dockerfile solves the problem, but I had to look through commits and source code to discover that. It would be helpful if it was mentioned on https://hub.docker.com/_/caddy

Even better if support for setcap could be auto-detected, but I have no knowledge about that

@ptxmac ptxmac changed the title caddy-builder broken on hosts where caddy-builder broken on hosts where setcap is not supported Apr 11, 2023
@francislavoie
Copy link
Member

francislavoie commented Apr 11, 2023

😬

I didn't even know that could fail if the command existed. That's annoying.

I know nothing about Synology. Would you be able to find out why it doesn't work? I have no idea how to determine if setcap would fail.

Anyways, instructions for xcaddy are documented here https://github.com/caddyserver/xcaddy#environment-variables and we do link to there from https://hub.docker.com/_/caddy so I think that's sufficient.

I think using XCADDY_SETCAP=0 is the correct fix for this case, since we don't know currently why it fails or how to check ahead of time.

@ptxmac
Copy link
Author

ptxmac commented Apr 12, 2023

I think it's because synology still use aufs as the storage driver, and from what I can find setcap isn't supported on aufs: moby/moby#5650

@hairyhenderson
Copy link
Contributor

Is this a build-only error? i.e. could you build the image elsewhere and pull it onto the NAS?

@ptxmac
Copy link
Author

ptxmac commented Apr 12, 2023

Hmm, that might work, though it doesn't fit well in my current setup to have this built in a different host.
For now just setting XCADDY_SETCAP=0 fixes my immediate problem

@hairyhenderson
Copy link
Contributor

Ok, thanks for the feedback!

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

No branches or pull requests

3 participants