Add a Dockerfile.dev to create build container. (#253)

This commit is contained in:
Abhilash Raj
2018-06-22 18:38:55 -07:00
committed by GitHub
parent 32b766b286
commit 69eeccc9a2
2 changed files with 55 additions and 6 deletions

View File

@@ -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

48
postorius/Dockerfile.dev Normal file
View File

@@ -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"]