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:
committed by
Abhilash Raj
parent
17aede3614
commit
f6f4d36d64
@@ -309,7 +309,7 @@ server {
|
|||||||
# First attempt to serve request as file, then
|
# First attempt to serve request as file, then
|
||||||
include uwsgi_params;
|
include uwsgi_params;
|
||||||
uwsgi_pass 172.19.199.3:8000;
|
uwsgi_pass 172.19.199.3:8000;
|
||||||
|
uwsgi_read_timeout 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,25 +2,25 @@ FROM python:3.6-alpine
|
|||||||
|
|
||||||
MAINTAINER Abhilash Raj
|
MAINTAINER Abhilash Raj
|
||||||
|
|
||||||
# Install the latest master branch of the mailman directly
|
#Add startup script to container
|
||||||
# from the Gitlab.
|
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 \
|
RUN apk update \
|
||||||
&& apk add --virtual build-deps gcc python3-dev musl-dev \
|
&& apk add --virtual build-deps gcc python3-dev musl-dev \
|
||||||
&& apk add postgresql-dev bash su-exec postgresql-client \
|
&& apk add postgresql-dev bash su-exec postgresql-client \
|
||||||
&& pip install psycopg2 mailman==3.1.0 mailman-hyperkitty==1.1.0 \
|
&& pip install psycopg2 mailman==3.1.0 mailman-hyperkitty==1.1.0 \
|
||||||
&& apk del build-deps
|
&& apk del build-deps \
|
||||||
|
&& adduser -S mailman \
|
||||||
ADD assets/run.sh /opt/run.sh
|
&& chmod a+x /opt/run.sh
|
||||||
|
|
||||||
# Change the working directory.
|
# Change the working directory.
|
||||||
WORKDIR /opt/mailman
|
WORKDIR /opt/mailman
|
||||||
|
|
||||||
EXPOSE 8001
|
#Expose the ports for the api (8001) and lmtp (8024)
|
||||||
|
EXPOSE 8001 8024
|
||||||
ENTRYPOINT ["/opt/run.sh"]
|
|
||||||
|
|
||||||
ENV MAILMAN_CONFIG_FILE /etc/mailman.cfg
|
ENV MAILMAN_CONFIG_FILE /etc/mailman.cfg
|
||||||
|
|
||||||
RUN adduser -S mailman
|
ENTRYPOINT ["/opt/run.sh"]
|
||||||
|
|
||||||
CMD ["/usr/local/bin/master"]
|
CMD ["/usr/local/bin/master"]
|
||||||
@@ -5,7 +5,7 @@ set -e
|
|||||||
curl -u restadmin:restpass http://172.19.199.2:8001/3.1/system
|
curl -u restadmin:restpass http://172.19.199.2:8001/3.1/system
|
||||||
|
|
||||||
# Check to see if postorius is working.
|
# 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.
|
# 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"
|
||||||
|
|||||||
@@ -3,7 +3,13 @@ FROM python:2.7
|
|||||||
MAINTAINER Abhilash Raj
|
MAINTAINER Abhilash Raj
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
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 \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends ruby-sass \
|
&& apt-get install -y --no-install-recommends ruby-sass \
|
||||||
wget \
|
wget \
|
||||||
@@ -18,18 +24,19 @@ RUN apt-get update \
|
|||||||
psycopg2 \
|
psycopg2 \
|
||||||
dj-database-url \
|
dj-database-url \
|
||||||
pymysql \
|
pymysql \
|
||||||
&& python -m pip install -U django==1.10
|
&& python -m pip install -U django==1.10 \
|
||||||
|
&& useradd -M -U -u 1000 mailman \
|
||||||
ADD mailman-web /opt/mailman-web
|
&& chmod u+x /opt/run.sh \
|
||||||
|
&& chown mailman /opt/mailman-web/* \
|
||||||
RUN useradd -M -U -u 1000 mailman
|
&& chmod u+x /opt/mailman-web/manage.py
|
||||||
|
|
||||||
ADD assets/run.sh /opt/run.sh
|
|
||||||
|
|
||||||
WORKDIR /opt/mailman-web
|
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"]
|
ENTRYPOINT ["/opt/run.sh"]
|
||||||
|
|
||||||
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]
|
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
[uwsgi]
|
[uwsgi]
|
||||||
# Port on which uwsgi will be listening.
|
# 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.
|
# Move to the directory wher the django files are.
|
||||||
chdir = /opt/mailman-web
|
chdir = /opt/mailman-web
|
||||||
|
|||||||
Reference in New Issue
Block a user