* Create rolling releases using the Gitlab API. This commit builds rolling releases of Container images using the latest commit on master branch if the pipeline passed for it. The script which gets the references is still un-tested and should be tested. The latest commit hashes are passed as arguments to the Dockerfile, which is then used by PIP to install the specific version of the dependency.
50 lines
1.6 KiB
Docker
50 lines
1.6 KiB
Docker
FROM python:2.7-alpine3.6
|
|
|
|
MAINTAINER Abhilash Raj
|
|
|
|
# Add needed files for uwsgi server + settings for django
|
|
COPY mailman-web /opt/mailman-web
|
|
# Add startup script to container
|
|
COPY docker-entrypoint.sh /usr/local/bin/
|
|
|
|
ARG POSTORIUS_REF
|
|
ARG HYPERKITTY_REF
|
|
ARG DJ_MM3_REF
|
|
ARG CLIENT_REF
|
|
|
|
# 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 set -ex \
|
|
&& apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers git \
|
|
postgresql-dev mariadb-dev \
|
|
&& apk add --no-cache --virtual .mailman-rundeps bash sassc \
|
|
postgresql-client mysql-client py-mysqldb curl \
|
|
&& pip install -U git+https://gitlab.com/mailman/mailmanclient@${CLIENT_REF} \
|
|
git+https://gitlab.com/mailman/postorius@${POSTORIUS_REF} \
|
|
git+https://gitlab.com/mailman/hyperkitty@${HYPERKITTY_REF} \
|
|
git+https://gitlab.com/mailman/django-mailman3@${DJ_MM3_REF} \
|
|
whoosh \
|
|
uwsgi \
|
|
psycopg2 \
|
|
dj-database-url \
|
|
mysqlclient \
|
|
&& pip install -U django==1.10 \
|
|
&& apk del .build-deps \
|
|
&& addgroup -S mailman \
|
|
&& adduser -S -G mailman mailman \
|
|
&& chown -R 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 ["docker-entrypoint.sh"]
|
|
|
|
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]
|