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
42 lines
1.4 KiB
Docker
42 lines
1.4 KiB
Docker
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 \
|
|
postgresql-client \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& python -m pip install -U mailmanclient==3.1.0 \
|
|
postorius==1.1.0 \
|
|
hyperkitty==1.1.0 \
|
|
django-mailman3==1.1.0 \
|
|
whoosh \
|
|
uwsgi \
|
|
psycopg2 \
|
|
dj-database-url \
|
|
pymysql \
|
|
&& 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 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"] |