JensErat / docker-sogo

Dockerfile for SOGo image. Not maintained any more, image is outdated.
ISC License
19 stars 19 forks source link

Switch base to Alpine? #5

Closed gymnae closed 8 years ago

gymnae commented 8 years ago

Hi, thanks for your great work. Would you consider switchting to Alpine as a base and integrationg Sogo3? It would save space, reduce the attack surface - also docker is moving a lot of base images to Alpine themselves. It would be just great :)

JensErat commented 8 years ago

I've already rebased the image to give up phusion and use Debian with supervisord. I'll push that in the next two weeks, have to clean up some other stuff before.

I'm not sure whether using Alpine is a good idea, although I'm open for discussion. Do you have any references on musl (or whatever libc it is using right now) and Gnustep? Furthermore, using Debian we can make use of Inverse' official repositories.

gymnae commented 8 years ago

I don't know about the state of Inverse repos, but in the time I've been rigging up my node I came to find that I can find almost all packages I need in either very stable and secure fashion (main) or bleeding edge in the testing branch. Only some packages, like mumble, don't see many updates.

Not sure if this answers your question, but here's their index listing for musl. Alpine is not GNU/Linux - thus I couldn't find GNUstep.

EDIT: I guess no GNUstep means no Sogo on Alpine...

JensErat commented 8 years ago

GNUstep is a runtime environment, comparable to Java, built around the language Objective C. Although I see the point in trying to use (even more minimal) base images, I don' t think this is the way to go for SOGo. There are just too many dependencies: GNUstep being a full software stack, Apache for some rewrite rules and static files (which of course might be split off, but there are also disadvantages in doing so), Samba 4 if using OpenChange, ActiveSync also requires additional packages.

Inverse provides stable builds for SOGo, readily packaged. They're working fine, I've never experienced issues with it, neither on small nor large-scale setups.

I'll close the issue as being explicit about Alpine, but expect some changes to the Dockerfile soon (plain Debian with supervisord instead of the bloaty Phusion baseimage, while staying mostly compatible but for memcached not being included any more). I'm currently testing it on my own, but it seems fine so far.

gymnae commented 8 years ago

Thanks for the explanation. In this sense trying to make it smaller with the busybox based Alpine might just end up in becoming something handcrafted and unmaintanable, maybe even bigger in size and slower in performance.

If it's ok to ask another question in a closed issue: I'm waiting for your rebased push. Any plans to include Sogo 3, or will you stick with 2? I see that there's a fork of your package for Sogo 3 by another user.

JensErat commented 8 years ago

SOGo 3 will be included as an alternative tag. The changes in the Dockerfile are pretty much limited to some additional characters in the repository URI.