-
Notifications
You must be signed in to change notification settings - Fork 36
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
nginx baked into the docker image #121
Comments
Hey @edheliel, thank you for bringing this up. The image has nginx bundled originally out of two reasons:
I agree with the point of running an unpriviliged user and an overall smaller image. This might cause a problem that I want to avoid: breaking backwards compability. So that An Otterwiki user breaks an existing installation because of a change in ports. Thinking about it: Maybe an extra released "slim" image, with a matching tag like |
Hi @redimp, Sorry for the late reply, life happened. |
In the container based upon the -slim image the uwsgi will be run as unprivileded www-data user. Due to using alpine the image is smaller in size, due to neither running nginx nor supervisord the amount of consumed memory is lower. The published port changed from 80 to 8080. This was discussed in #121.
For testing the slim docker image is available as: The size of the compressed image for e.g. amd64 was (accoording to hub.docker.com) reduced from 167.04 MB to 67.69 MB. The amount of memory consumed is reduced by approx. 25 MB for amd64, due to skipping both nginx and supervisord. |
Did some testing, looks promising. Just switched otterwiki.com with the release of 2.4.4 to the slim image. Open task: Update the documentation. |
The documentation howto use the slim image can be found here: https://otterwiki.com/Installation#the-slim-image-variant I also addressed to base image used, as @jtru suggested in e8fb063 |
Current State
The docker image comes with
nginx
reverse proxy baked in and opens container port80
.Issue description
and also breaks the container if you want to deploy it on
kubernetes
withrunAsUser
as you won't have those privilegesproduction
like deployments or microservice based deployments you usually have anIngressController
or a separate reverse proxy that would deal with SSL terminationConclusion
docker
container would improve the state of the application in several waysotterwiki
PS: Unless there is some other reason why
nginx
is inside of the docker image, for me seems reasonable to not ship the container withnginx
and rather use smaller more secure container image likealpine
or the likesIf this is on your radar I am also happy to help
The text was updated successfully, but these errors were encountered: