Standarize image by using shared / similair layers

master
Tim Möhlmann 6 years ago
parent 903bb70c5b
commit 42e2dbe35d
No known key found for this signature in database
GPG Key ID: AFABC30066A39335

@ -1,12 +1,16 @@
FROM python:3-alpine FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache \
python3 py3-pip \
&& pip3 install --upgrade pip
# Image specific layers under this line
RUN mkdir -p /app RUN mkdir -p /app
WORKDIR /app WORKDIR /app
COPY requirements-prod.txt requirements.txt COPY requirements-prod.txt requirements.txt
RUN apk add --no-cache openssl curl \ RUN apk add --no-cache openssl curl \
&& apk add --no-cache --virtual build-dep openssl-dev libffi-dev python-dev build-base \ && apk add --no-cache --virtual build-dep openssl-dev libffi-dev python3-dev build-base \
&& pip install -r requirements.txt \ && pip3 install -r requirements.txt \
&& apk del --no-cache build-dep && apk del --no-cache build-dep
COPY mailu ./mailu COPY mailu ./mailu

@ -1,7 +1,7 @@
#!/usr/local/bin/python3 #!/usr/bin/python3
import os import os
os.system("python manage.py advertise") os.system("python3 manage.py advertise")
os.system("python manage.py db upgrade") os.system("python3 manage.py db upgrade")
os.system("gunicorn -w 4 -b :80 --access-logfile - --error-logfile - --preload mailu:app") os.system("gunicorn -w 4 -b :80 --access-logfile - --error-logfile - --preload mailu:app")

@ -1,10 +1,16 @@
FROM alpine:3.8 FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache \ RUN apk add --no-cache \
dovecot dovecot-pigeonhole-plugin dovecot-fts-lucene rspamd-client \ python3 py3-pip \
bash python3 py3-pip \ && pip3 install --upgrade pip
&& pip3 install --upgrade pip \ # Shared layer between rspamd, postfix, dovecot, unbound and nginx
&& pip3 install jinja2 podop tenacity RUN pip3 install jinja2
# Shared layer between rspamd, postfix, dovecot
RUN pip3 install tenacity
# Image specific layers under this line
RUN apk add --no-cache \
dovecot dovecot-pigeonhole-plugin dovecot-fts-lucene rspamd-client bash \
&& pip3 install podop
COPY conf /conf COPY conf /conf
COPY start.py /start.py COPY start.py /start.py

@ -1,9 +1,13 @@
FROM alpine:3.8 FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache \
python3 py3-pip \
&& pip3 install --upgrade pip
# Shared layer between rspamd, postfix, dovecot, unbound and nginx
RUN pip3 install jinja2
# Image specific layers under this line
RUN apk add --no-cache certbot nginx nginx-mod-mail openssl curl \ RUN apk add --no-cache certbot nginx nginx-mod-mail openssl curl \
python py-jinja2 py-requests-toolbelt py-pip \ && pip3 install idna requests
&& pip install --upgrade pip \
&& pip install idna
COPY conf /conf COPY conf /conf
COPY *.py / COPY *.py /

@ -1,4 +1,4 @@
#!/usr/bin/python #!/usr/bin/python3
import jinja2 import jinja2
import os import os

@ -1,4 +1,4 @@
#!/usr/bin/python #!/usr/bin/python3
import os import os
import time import time

@ -1,4 +1,4 @@
#!/usr/bin/python #!/usr/bin/python3
import os import os
import subprocess import subprocess

@ -1,9 +1,16 @@
FROM alpine:3.8 FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache \
python3 py3-pip \
&& pip3 install --upgrade pip
# Shared layer between rspamd, postfix, dovecot, unbound and nginx
RUN pip3 install jinja2
# Shared layer between rspamd, postfix, dovecot
RUN pip3 install tenacity
# Image specific layers under this line
RUN apk add --no-cache postfix postfix-pcre rsyslog \ RUN apk add --no-cache postfix postfix-pcre rsyslog \
python3 py3-pip \ && pip3 install podop
&& pip3 install --upgrade pip \
&& pip3 install jinja2 podop tenacity
COPY conf /conf COPY conf /conf
COPY start.py /start.py COPY start.py /start.py

@ -1,5 +1,9 @@
FROM python:3-alpine FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache \
python3 py3-pip \
&& pip3 install --upgrade pip
# Image specific layers under this line
RUN apk add --no-cache clamav rsyslog wget clamav-libunrar RUN apk add --no-cache clamav rsyslog wget clamav-libunrar
COPY conf /etc/clamav COPY conf /etc/clamav

@ -1,4 +1,4 @@
#!/usr/local/bin/python3 #!/usr/bin/python3
import os import os
@ -9,4 +9,4 @@ os.system("[ -f /data/main.cvd ] || freshclam")
os.system("freshclam -d -c 6") os.system("freshclam -d -c 6")
# Run clamav # Run clamav
os.system("clamd") os.system("clamd")

@ -1,7 +1,11 @@
FROM python:3-alpine FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache \
python3 py3-pip \
&& pip3 install --upgrade pip
# Image specific layers under this line
RUN apk add --no-cache fetchmail ca-certificates \ RUN apk add --no-cache fetchmail ca-certificates \
&& pip install requests && pip3 install requests
COPY fetchmail.py /fetchmail.py COPY fetchmail.py /fetchmail.py
USER fetchmail USER fetchmail

@ -1,4 +1,4 @@
#!/usr/bin/env python #!/usr/bin/python3
import time import time
import os import os

@ -1,8 +1,14 @@
FROM alpine:3.8 FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache python py-jinja2 rspamd rspamd-controller rspamd-proxy rspamd-fuzzy ca-certificates py-pip curl\ RUN apk add --no-cache \
&& pip install --upgrade pip \ python3 py3-pip \
&& pip install tenacity && pip3 install --upgrade pip
# Shared layer between rspamd, postfix, dovecot, unbound and nginx
RUN pip3 install jinja2
# Shared layer between rspamd, postfix, dovecot
RUN pip3 install tenacity
# Image specific layers under this line
RUN apk add --no-cache rspamd rspamd-controller rspamd-proxy rspamd-fuzzy ca-certificates curl
RUN mkdir /run/rspamd RUN mkdir /run/rspamd

@ -1,4 +1,4 @@
#!/usr/bin/python #!/usr/bin/python3
import jinja2 import jinja2
import os import os

@ -1,7 +1,12 @@
FROM python:3-alpine FROM alpine:3.8
# python3 shared with most images
RUN apk add --no-cache \
python3 py3-pip \
&& pip3 install --upgrade pip
# Shared layer between rspamd, postfix, dovecot, unbound and nginx
RUN pip3 install jinja2
# Image specific layers under this line
RUN apk add --no-cache unbound curl bind-tools \ RUN apk add --no-cache unbound curl bind-tools \
&& pip3 install jinja2 \
&& curl -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache \ && curl -o /etc/unbound/root.hints https://www.internic.net/domain/named.cache \
&& chown root:unbound /etc/unbound \ && chown root:unbound /etc/unbound \
&& chmod 775 /etc/unbound \ && chmod 775 /etc/unbound \

@ -1,4 +1,4 @@
#!/usr/local/bin/python3 #!/usr/bin/python3
import jinja2 import jinja2
import os import os

@ -1,9 +1,13 @@
FROM php:7.2-apache FROM php:7.2-apache
#Shared layer between rainloop and roundcube
RUN apt-get update && apt-get install -y \
python3 curl \
&& rm -rf /var/lib/apt/lists
ENV RAINLOOP_URL https://github.com/RainLoop/rainloop-webmail/releases/download/v1.12.1/rainloop-community-1.12.1.zip ENV RAINLOOP_URL https://github.com/RainLoop/rainloop-webmail/releases/download/v1.12.1/rainloop-community-1.12.1.zip
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
unzip python3 python3-jinja2 curl \ unzip python3-jinja2 \
&& rm -rf /var/www/html/ \ && rm -rf /var/www/html/ \
&& mkdir /var/www/html \ && mkdir /var/www/html \
&& cd /var/www/html \ && cd /var/www/html \

@ -1,9 +1,13 @@
FROM php:7.2-apache FROM php:7.2-apache
#Shared layer between rainloop and roundcube
RUN apt-get update && apt-get install -y \
python3 curl \
&& rm -rf /var/lib/apt/lists
ENV ROUNDCUBE_URL https://github.com/roundcube/roundcubemail/releases/download/1.3.8/roundcubemail-1.3.8-complete.tar.gz ENV ROUNDCUBE_URL https://github.com/roundcube/roundcubemail/releases/download/1.3.8/roundcubemail-1.3.8-complete.tar.gz
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
zlib1g-dev curl python3 \ zlib1g-dev \
&& docker-php-ext-install zip \ && docker-php-ext-install zip \
&& echo date.timezone=UTC > /usr/local/etc/php/conf.d/timezone.ini \ && echo date.timezone=UTC > /usr/local/etc/php/conf.d/timezone.ini \
&& rm -rf /var/www/html/ \ && rm -rf /var/www/html/ \

Loading…
Cancel
Save