-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Add varnish #4404
Add varnish #4404
Conversation
Tagging @kevin1024 @avoinea @andrerom from the previous PR. |
My new attempt to contact upstream: /cc @gquintard who wrote this blog post: https://info.varnish-software.com/blog/varnish-docker |
Hi, thanks for tagging me. I had a look and only have a couple of questions/objections:
|
It seems to be the Docker way. And yes, it allows anyone to easily customize the build. I'll look into the
Point taken. But seeing that the source |
My point about the vmods using the source is really more about maintainability and being correct; people will read your instructions and think that vmods still need the source, even though your instructions were already outdated when you wrote them. I mean, vmods today don't even know about Plus, your argument about the source being small doesn't stand since you take care of removing the vmod's tgz in the Dockerfile, and that file is super small. Other than than, no issues on the purely varnish sides of things |
Okay, I'll remove the Varnish source after compilation. 😄 |
Biased, but would also like to see https://github.com/varnish/varnish-modules part of the image, some of the modules are becoming quite broadly used (xkey, variable, sessions, ..). It's quite easy to install it on top of the varnish packages @gquintard recommends, example of that: |
If it's easy to install, we don't need to include it. For example, the official PHP image only includes non-default extensions that are impossible or too hard to install. But if there's a unified way to install most Varnish modules (I doubt so), we could certainly add a helper script. |
Most vmods are built from the same template (vmod_example) so, with a bunch
of wildcards you can get/untar/configure/build/install in fairly unified
manner.
Just add a variable to install dependencies, and off you go.
…On Fri, Jun 29, 2018, 11:55 Teoh Han Hui ***@***.***> wrote:
If it's easy to install, we don't need to include it. For example, the
official PHP image only includes non-default extensions that are impossible
or too hard to install.
But if there's a unified way to install most Varnish modules (I doubt so),
we could certainly add a helper script.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#4404 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADmgKcw-7zTegHIne3Zh1EAtKZ7oq_83ks5uBgeegaJpZM4UR5U7>
.
|
from https://github.com/varnishcache/libvmod-example So we still need to keep the source around... EDIT: Hmm, I guess I was mistaken... The header files are in |
All issues raised by @gquintard have been resolved. 🎉 |
501362a
to
fc99134
Compare
@andrerom Alpine variant added. 🎉 Also, the debian variant is now 33% smaller. |
Hello! ✨ Thanks for your interest in contributing to the official images program. 💭 As you may have noticed, we've usually got a pretty decently sized queue of new images (not to mention image updates and maintenance of images under @docker-library which are maintained by the core official images team). As such, it may be some time before we get to reviewing this image (image updates get priority both because users expect them and because reviewing new images is a more involved process than reviewing updates), so we apologize in advance! Please be patient with us (and avoid poking us about your image via other communication means -- rest assured, we've seen your PR and it's in the queue). ❤️ We do try to proactively add and update the "new image checklist" on each PR, so if you haven't looked at it yet, that's a good use of time while you wait. ☔ Thanks! 💖 💙 💚 ❤️ |
Oops! Sorry... |
Thanks @docker-library-bot ❤️
Just to be clear, compiling from source isn't "the Docker way" -- for all official images, we explicitly recommend following upstream's recommendations. For example, A few other initial notes after taking a first pass over the Dockerization:
|
|
|
But wouldn't that make for very bad DX? EDIT: I've made the |
4933fab
to
75eb03d
Compare
@tianon @gquintard Is it important to use upstream built packages in this case? I looked at the |
it's not that it important, it's just that's it way faster, for rom, the Dockerfile is literally 5 lines long:
You get the init scripts, libs are packaged in a devel package if you want to build vmods, I honestly don't see the complexity here |
oh, and we have weekly packages too! |
@gquintard Init scripts are not useful in a Docker container. Well, the complexity is due to the fact that official Docker images are built for multiarch. And as we can see in the postgres Dockerfile, it's not easy / obvious to see what's going on with all the detection logic. |
75eb03d
to
c2ac225
Compare
a6b94e8
to
dd6883a
Compare
@gquintard @tianon A point against using the upstream packages: https://packagecloud.io/varnishcache/varnish62 is still empty at time of writing, 2 weeks after Varnish 6.2 was released. |
Also, it seems like Varnish 6.2.0 still requires patches on Alpine: https://git.alpinelinux.org/aports/tree/main/varnish?id=d1ee09bdd4d8b028c154d428eabebaa10d9f9686 |
not sure those are still necessary, but I'll check |
@tianon Do you see any outstanding issues? What do I need to do to get the Dockerization review moving? |
fixed |
@gquintard Yeah, I've noticed. Is it automated now? |
@teohhanhui, it was already automated, but something broke the pipeline and we didn't notice, this shouldn't happen anymore. |
Do you think it's important to switch to the official package? I'll look into it if you think it's necessary. |
It's really just that the official repo is:
If there's any issue with it on Docker, I'd rather have the official Docker images use them so we know fast when something goes wrong. Past that, it's your choice |
@gquintard @tianon I've done it at coopTilleuls/docker-varnish#42 Would appreciate your review. I have some concerns about the inconsistency this has caused between both variants of the image though... For example, |
I'm going to declare myself incompetent on the matter, somehow coopTilleuls/docker-varnish#42 adds more code, and I have no intention of digging through it. The mere fact that the Dockerfile is creating a local APT repo is terrifying.
Fix the custom built packages to do the same thing as the prepackaged versions? Or just don't build from source? |
That's only for architectures other than
Sure, if you provide prebuilt binaries that work on Alpine. I'm not sure if we should install from the official Alpine repository, as chances are they'd be a bit behind. |
best way I found is to checkout the aports and use the APKBUILD. alpine won't hold onto old packages, but we can reuse their knowledge please have a look at this: coopTilleuls/docker-varnish/pull/43 , it's certainly not perfect, but it should make things more manageable (I'm monitoring travis to see if I missed anything)
While I appreciate the will to cover all the architectures, Varnish was built (no pun intended) from the ground up for 64bits architectures, so the others architectures you can target are arm64, which is possibly a bit out of the ordinary. In any case, I'd rather go for good enough and try to add support for that one later, if there's demand for it. |
Closing in favor of #5855. |
Reviving #1294.
Varnish Cache is a widely used caching HTTP reverse proxy.
As we've seen in #1294 (which remained open for a long time) upstream has not shown any interest.
I believe all the best practices have been sufficiently adhered to, including the Official Images Test Suite,
update.sh
andgenerate-stackbrew-library.sh
.Docs PR: docker-library/docs#1241
Checklist for Review
NOTE: This checklist is intended for the use of the Official Images maintainers both to track the status of your PR and to help inform you and others of where we're at. As such, please leave the "checking" of items to the repository maintainers. If there is a point below for which you would like to provide additional information or note completion, please do so by commenting on the PR. Thanks! (and thanks for staying patient with us ❤️)
foobar
needs Node.js, hasFROM node:...
instead of grabbingnode
via other means been considered?)FROM scratch
, tarballs only exist in a single commit within the associated history?