Added Test::Nginx to alpine-fat#58
Added Test::Nginx to alpine-fat#58AlecHFerguson wants to merge 5 commits intoopenresty:masterfrom AlecHFerguson:Add_Test_Nginx
Conversation
|
@AlecHFerguson Thanks for your pull request. I think it does make sense to add this specific testing package, even though the other distros don't include it (e.g. That said, regarding this specific pull request: Can you install this Test::Nginx without "capanminus"? And whatever extra things get installed and aren't needed, can you uninstall them in the same |
|
Following what you have, I don't get a clean build: I tried installing I also installed And then perhaps in the end |
|
Thanks for the feedback @neomantra . Glad you support the idea. I'm happy to help add to the fat versions for distros as well. I'll do some more research into installing without cpanminus. With all the dependencies that I've switched to using the https url, good call. I generally agree that installing cpanminus via package manager ( As to the failing builds, I'm happy to help debug. The image built cleanly for me so I'm curious what could be different. I'm running Docker for Mac version 17.06, which I don't think should affect it. Is your build environment accessible to me in some way? CI instance I can look at, an AMI I can try? |
|
After looking at what it is (and seeing that @agentzh recommends it), I think using I'm not able to reproduce the errors that I was talking about after fiddling more and building clean. Maybe there was something stale and whacked. So can you add this to the I'll then re-test the build and squash your commits as one. Thanks! I plan on revamping the Dockerfiles and a build system to use multi-stage builds. That will make managing "fat" builds a lot easier. I'm doing that around Christmas. For OpenResty-packaged variants, I think OpenResty maintains these test packages (e.g. |
| --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1 \ | ||
| && make build \ | ||
| && make install \ | ||
| && PERL_MM_USE_DEFAULT=1 cpan install Test::Nginx \ |
There was a problem hiding this comment.
@neomantra I made these changes. Surprisingly, it bumped the image size up from 255 MB to 291 MB. If we're comfortable with that then I can squash as is. I do think the curl approach is perfectly valid, and does avoid having to install cpan.
There was a problem hiding this comment.
Hmmm... I think there might be cpan cache's that need to get deleted too -- /root/.cpan is taking 55.6M. So after removing cpanminus, there needs to be this line:
&& rm -rf /root/.cpan /tmp/cpan* \
That was a quick glance using find . -name '*cpan*' within the image.
There was a problem hiding this comment.
sorry, i see you aren't using cpanminus... just put that after the install.
There was a problem hiding this comment.
Gah, sorry again... I think it should just be the build folder? /root/.cpan/build or perhaps there's a way to tell cpan not to save stuff. The build folder is ~18MB.
There was a problem hiding this comment.
Thanks @neomantra, I'll give this a try. I'm busy all day today but I'll pick this up again in a couple days.
There was a problem hiding this comment.
@neomantra You were spot on. Removing the /root/.cpan directory got the image down to 241 MB. Versus the current image that's 234 MB.
|
@AlecHFerguson Does that |
|
@neomantra are there any updates on the multi-stage builds ? if not, can you share what should I copy from this image to another alpine image in my own multi-stage dockerfile (of my application, not a fork of this) |
|
@dorongutman You want to install Test::Nginx in your image? Line 109, cpan install Test::Nginx should do it no? My apologies for neglecting to get this PR finished. I’m traveling for the next couple weeks so have no computer available. Should be able to get back to this in a couple weeks when I get home. Thanks for the reminder. |
|
@AlecHFerguson no, I want to build openresty in its own image (with all the building dependencies), then copy whatever needed to a clean alpine image |
|
@AlecHFerguson or for example, copy whatever I need from a |
|
Here's how to self-service what contents are at that layer: |
|
@dorongutman Otherwise, I've not had a chance to use multi-stage builds yet. But the idea is more to have |
I recently discovered this excellent repo when trying to run Test::Nginx tests for my OpenResty project. Test::Nginx wasn't installed so I've gone ahead and added it.
I built an image from this Dockerfile and am able to run tests successfully (getting 'em passing is another matter!)
The current
alpine-fatimage is 234MB; this one is 259MB. So definitely a bit bigger. I still think it's in the spirit of fat to include all build utils, including tests.