diff --git a/build.sh b/build.sh index 9b8634b..f92d66e 100755 --- a/build.sh +++ b/build.sh @@ -10,6 +10,7 @@ if [ "$1" = "dev" ]; then fi REG_URL=${REGISTRY}_URL +TAG=0.1 if [ "$EVENT_TYPE" = "cron" ] || [ "$DEV" = "true" ]; then python3 -m venv venv @@ -31,7 +32,7 @@ if [ "$EVENT_TYPE" = "cron" ] || [ "$DEV" = "true" ]; then --label version.core="$CORE_REF" \ --label version.mm3-hk="$MM3_HK_REF" \ --label version.git_commit="$COMMIT_ID" \ - -t ${!REG_URL}/maxking/mailman-core:rolling core/ + -t maxking/mailman-core:rolling core/ # Build the mailman-web image. $DOCKER build -f web/Dockerfile.dev \ @@ -44,7 +45,7 @@ if [ "$EVENT_TYPE" = "cron" ] || [ "$DEV" = "true" ]; then --build-arg CLIENT_REF=$CLIENT_REF \ --build-arg HYPERKITTY_REF=$HYPERKITTY_REF \ --build-arg DJ_MM3_REF=$DJ_MM3_REF \ - -t ${!REG_URL}/maxking/mailman-web:rolling web/ + -t maxking/mailman-web:rolling web/ $DOCKER build -f postorius/Dockerfile.dev\ --label version.git_commit="$COMMIT_ID"\ @@ -54,10 +55,10 @@ if [ "$EVENT_TYPE" = "cron" ] || [ "$DEV" = "true" ]; then --build-arg POSTORIUS_REF=$POSTORIUS_REF \ --build-arg CLIENT_REF=$CLIENT_REF \ --build-arg DJ_MM3_REF=$DJ_MM3_REF \ - -t ${!REG_URL}/maxking/postorius:rolling postorius/ + -t maxking/postorius:rolling postorius/ else # Do the normal building process. - $DOCKER build -t ${!REG_URL}/maxking/mailman-core:$TAG core/ - $DOCKER build -t ${!REG_URL}/maxking/mailman-web:$TAG web/ - $DOCKER build -t ${!REG_URL}/maxking/postorius:$TAG postorius/ + $DOCKER build -t maxking/mailman-core:$TAG core/ + $DOCKER build -t maxking/mailman-web:$TAG web/ + $DOCKER build -t maxking/postorius:$TAG postorius/ fi diff --git a/postorius/Dockerfile.dev b/postorius/Dockerfile.dev new file mode 100644 index 0000000..13b0c42 --- /dev/null +++ b/postorius/Dockerfile.dev @@ -0,0 +1,48 @@ +FROM python:3.6-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 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 \ + postgresql-client mysql-client py-mysqldb curl mailcap \ + && pip install -U git+https://gitlab.com/mailman/mailmanclient@${CLIENT_REF} \ + git+https://gitlab.com/mailman/postorius@${POSTORIUS_REF} \ + whoosh \ + uwsgi \ + psycopg2 \ + dj-database-url \ + mysqlclient \ + && pip install -U django>=1.11\ + && pip install -U git+https://gitlab.com/mailman/django-mailman3@${DJ_MM3_REF} \ + && 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 http and port 8080 for uwsgi +# (see web/mailman-web/uwsgi.ini#L2-L4) +EXPOSE 8000 8080 + +# Use stop signal for uwsgi server +STOPSIGNAL SIGINT + +ENTRYPOINT ["docker-entrypoint.sh"] + +CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]