Use alpine images instead of Python. (#290)
* Use alpine images instead of Python. * Minor fix to use python3 -m pip * Fix settings for paintstore.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
FROM python:3.6-alpine
|
||||
FROM alpine:3.8
|
||||
|
||||
MAINTAINER Abhilash Raj
|
||||
|
||||
@@ -7,10 +7,11 @@ COPY docker-entrypoint.sh /usr/local/bin/
|
||||
|
||||
#Install all required packages, add user for executing mailman and set execution rights for startup script
|
||||
RUN apk update \
|
||||
&& apk add --virtual build-deps gcc python3-dev musl-dev postgresql-dev libffi-dev \
|
||||
&& apk add bash su-exec postgresql-client mysql-client curl \
|
||||
&& pip install -U pip \
|
||||
&& pip install psycopg2 \
|
||||
&& apk add --virtual build-deps gcc python3-dev musl-dev postgresql-dev \
|
||||
libffi-dev \
|
||||
&& apk add --no-cache bash su-exec postgresql-client mysql-client curl python py3-setuptools \
|
||||
&& python3 -m pip install -U pip \
|
||||
&& python3 -m pip install psycopg2 \
|
||||
mailman==3.2 \
|
||||
mailman-hyperkitty==1.1.0 \
|
||||
pymysql \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM python:3.6-alpine
|
||||
FROM alpine:3.8
|
||||
|
||||
MAINTAINER Abhilash Raj
|
||||
|
||||
@@ -13,11 +13,12 @@ ARG MM3_HK_REF
|
||||
#Install all required packages, add user for executing mailman and set execution
|
||||
#rights for startup script
|
||||
RUN apk update \
|
||||
&& apk add --virtual build-deps gcc python3-dev musl-dev postgresql-dev git libffi-dev \
|
||||
&& apk add bash su-exec postgresql-client mysql-client curl \
|
||||
&& pip install -U psycopg2 pymysql \
|
||||
git+https://gitlab.com/mailman/mailman@${CORE_REF} \
|
||||
git+https://gitlab.com/mailman/mailman-hyperkitty@${MM3_HK_REF} \
|
||||
&& apk add --no-cache --virtual build-deps gcc python3-dev musl-dev \
|
||||
postgresql-dev git libffi-dev \
|
||||
&& apk add --no-cache bash su-exec postgresql-client mysql-client curl python3 py3-setuptools \
|
||||
&& python3 -m pip install -U psycopg2 pymysql \
|
||||
git+https://gitlab.com/mailman/mailman@${CORE_REF} \
|
||||
git+https://gitlab.com/mailman/mailman-hyperkitty@${MM3_HK_REF} \
|
||||
&& apk del build-deps \
|
||||
&& adduser -S mailman
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ set -e
|
||||
function wait_for_postgres () {
|
||||
# Check if the postgres database is up and accepting connections before
|
||||
# moving forward.
|
||||
# TODO: Use python's psycopg2 module to do this in python instead of
|
||||
# TODO: Use python3's psycopg2 module to do this in python3 instead of
|
||||
# installing postgres-client in the image.
|
||||
until psql $DATABASE_URL -c '\l'; do
|
||||
>&2 echo "Postgres is unavailable - sleeping"
|
||||
|
||||
@@ -44,6 +44,5 @@ EXPOSE 8000 8080
|
||||
STOPSIGNAL SIGINT
|
||||
|
||||
ENTRYPOINT ["docker-entrypoint.sh"]
|
||||
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]
|
||||
|
||||
ENV PYTHONPATH=/usr/lib/python3.6/site-packages
|
||||
CMD ["uwsgi", "--ini", "/opt/mailman-web/uwsgi.ini"]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM python:3.6-alpine3.7
|
||||
FROM alpine:3.8
|
||||
|
||||
MAINTAINER Abhilash Raj
|
||||
|
||||
@@ -16,25 +16,29 @@ ARG CLIENT_REF
|
||||
# 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 mailcap \
|
||||
&& 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} \
|
||||
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
|
||||
&& apk add --no-cache --virtual .build-deps gcc libc-dev linux-headers git \
|
||||
postgresql-dev mariadb-dev python3-dev \
|
||||
&& apk add --no-cache --virtual .mailman-rundeps bash sassc \
|
||||
python3 py3-setuptools postgresql-client mysql-client py-mysqldb\
|
||||
curl mailcap xapian-core xapian-bindings-python3 \
|
||||
&& python3 -m 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} \
|
||||
whoosh \
|
||||
uwsgi \
|
||||
psycopg2 \
|
||||
dj-database-url \
|
||||
mysqlclient \
|
||||
xapian-haystack \
|
||||
&& python3 -m pip install -U django>=1.11\
|
||||
&& python3 -m 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
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ MAILMAN_ARCHIVER_FROM = os.environ.get('MAILMAN_HOST_IP', '172.19.199.2')
|
||||
|
||||
# Application definition
|
||||
|
||||
INSTALLED_APPS = (
|
||||
INSTALLED_APPS = [
|
||||
'hyperkitty',
|
||||
'postorius',
|
||||
'django_mailman3',
|
||||
@@ -81,7 +81,6 @@ INSTALLED_APPS = (
|
||||
'django.contrib.staticfiles',
|
||||
'rest_framework',
|
||||
'django_gravatar',
|
||||
'paintstore',
|
||||
'compressor',
|
||||
'haystack',
|
||||
'django_extensions',
|
||||
@@ -94,7 +93,17 @@ INSTALLED_APPS = (
|
||||
'allauth.socialaccount.providers.github',
|
||||
'allauth.socialaccount.providers.gitlab',
|
||||
'allauth.socialaccount.providers.google',
|
||||
)
|
||||
]
|
||||
|
||||
# Optionally include paintstore, if it was installed with Hyperkitty.
|
||||
# TODO: Remove this after a new version of Hyperkitty is released and
|
||||
# neither the stable nor the rolling version needs it.
|
||||
try:
|
||||
import paintstore
|
||||
INSTALLED_APPS.append('paintstore')
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
|
||||
_MIDDLEWARE = (
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
|
||||
Reference in New Issue
Block a user