Merge PR from @chrros95

Several Changes:
- Uwsgi now listens on two sockets 8080 for http protocol and 8000 for uwsgi protocol
- Add a read_timeout in documentation for Nginx configuration 
- Expose 8024 properly in Core image
- Expose 8080 and 8000 both in Web image
- Rearange the commands to get even less number of layers.
- Add SIGINT as stop signal in web because uwsgi needs it shut down gracefully
- Enable threads in default uwsgi configuration

Fix #64, Fix #15
This commit is contained in:
Christian Rose
2017-07-14 01:53:22 +02:00
committed by Abhilash Raj
parent 17aede3614
commit f6f4d36d64
5 changed files with 37 additions and 26 deletions

View File

@@ -309,7 +309,7 @@ server {
# First attempt to serve request as file, then
include uwsgi_params;
uwsgi_pass 172.19.199.3:8000;
uwsgi_read_timeout 300;
}
}
@@ -369,4 +369,4 @@ more details.
[11]: https://mailman.readthedocs.io/en/latest/src/mailman/docs/database.html
[12]: http://www.postfix.org/
[13]: http://semver.org/
[14]: https://docs.docker.com/engine/security/trust/content_trust/
[14]: https://docs.docker.com/engine/security/trust/content_trust/

View File

@@ -2,25 +2,25 @@ FROM python:3.6-alpine
MAINTAINER Abhilash Raj
# Install the latest master branch of the mailman directly
# from the Gitlab.
#Add startup script to container
ADD assets/run.sh /opt/run.sh
#Install all required packages, add user for executing mailman and set execution rights for startup script
RUN apk update \
&& apk add --virtual build-deps gcc python3-dev musl-dev \
&& apk add postgresql-dev bash su-exec postgresql-client \
&& pip install psycopg2 mailman==3.1.0 mailman-hyperkitty==1.1.0 \
&& apk del build-deps
ADD assets/run.sh /opt/run.sh
&& apk del build-deps \
&& adduser -S mailman \
&& chmod a+x /opt/run.sh
# Change the working directory.
WORKDIR /opt/mailman
EXPOSE 8001
ENTRYPOINT ["/opt/run.sh"]
#Expose the ports for the api (8001) and lmtp (8024)
EXPOSE 8001 8024
ENV MAILMAN_CONFIG_FILE /etc/mailman.cfg
RUN adduser -S mailman
CMD ["/usr/local/bin/master"]
ENTRYPOINT ["/opt/run.sh"]
CMD ["/usr/local/bin/master"]

View File

@@ -5,7 +5,7 @@ set -e
curl -u restadmin:restpass http://172.19.199.2:8001/3.1/system
# Check to see if postorius is working.
curl -L http://172.19.199.3:8000/postorius/lists | grep "Mailing List"
curl -L http://172.19.199.3:8080/postorius/lists | grep "Mailing List"
# Check to see if hyperkitty is working.
curl -L http://172.19.199.3:8000/hyperkitty/ | grep "Available lists"
curl -L http://172.19.199.3:8080/hyperkitty/ | grep "Available lists"

View File

@@ -3,7 +3,13 @@ FROM python:2.7
MAINTAINER Abhilash Raj
ENV DEBIAN_FRONTEND=noninteractive
# Add needed files for uwsgi server + settings for django
ADD mailman-web /opt/mailman-web
# Add startup script to container
ADD assets/run.sh /opt/run.sh
# Install packages and dependencies for postorius and hyperkitty
# Add user for executing apps, change ownership for uwsgi+django files and set execution rights for management script
RUN apt-get update \
&& apt-get install -y --no-install-recommends ruby-sass \
wget \
@@ -18,18 +24,19 @@ RUN apt-get update \
psycopg2 \
dj-database-url \
pymysql \
&& python -m pip install -U django==1.10
ADD mailman-web /opt/mailman-web
RUN useradd -M -U -u 1000 mailman
ADD assets/run.sh /opt/run.sh
&& python -m pip install -U django==1.10 \
&& useradd -M -U -u 1000 mailman \
&& chmod u+x /opt/run.sh \
&& chown mailman /opt/mailman-web/* \
&& chmod u+x /opt/mailman-web/manage.py
WORKDIR /opt/mailman-web
EXPOSE 8000
# Expose port 8000 for uwsgi and port 8080 for http
EXPOSE 8000 8080
# Use stop signal for uwsgi server
STOPSIGNAL SIGINT
ENTRYPOINT ["/opt/run.sh"]
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]

View File

@@ -1,6 +1,10 @@
[uwsgi]
# Port on which uwsgi will be listening.
http = :8000
uwsgi-socket = 0.0.0.0:8000
http-socket = 0.0.0.0:8080
#Enable threading for python
enable-threads = true
# Move to the directory wher the django files are.
chdir = /opt/mailman-web