diff options
author | Suren A. Chilingaryan <csa@suren.me> | 2019-10-01 19:30:54 +0200 |
---|---|---|
committer | Suren A. Chilingaryan <csa@suren.me> | 2019-10-01 19:30:54 +0200 |
commit | 79c76eaef5039276bb3a8725ac8c9f05f89ef0de (patch) | |
tree | 1bde68d36ce44d75fafc6dfb41f5f6d2b555815f /adei/Dockerfile | |
parent | bc1b77dc912adfd040d432972e2d3256c9ea2065 (diff) | |
download | adei-79c76eaef5039276bb3a8725ac8c9f05f89ef0de.tar.gz adei-79c76eaef5039276bb3a8725ac8c9f05f89ef0de.tar.bz2 adei-79c76eaef5039276bb3a8725ac8c9f05f89ef0de.tar.xz adei-79c76eaef5039276bb3a8725ac8c9f05f89ef0de.zip |
Optimize Dockerfile
Diffstat (limited to 'adei/Dockerfile')
-rw-r--r-- | adei/Dockerfile | 91 |
1 files changed, 42 insertions, 49 deletions
diff --git a/adei/Dockerfile b/adei/Dockerfile index 0428a08..e134875 100644 --- a/adei/Dockerfile +++ b/adei/Dockerfile @@ -1,46 +1,56 @@ -FROM opensuse:42.3 +FROM opensuse/leap:42.3 MAINTAINER Suren A. Chilingaryan <csa@suren.me> -# Useful system applications -RUN zypper -n in glibc-locale mc bzr git openssh telnet curl python-pycurl - -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 +EXPOSE 80 +VOLUME /adei + +ENV ADEI_REVISION=last:1 \ + ADEI_PARALLEL=sources \ + ADEI_SETUP=all \ + ADEI_ENABLED_SETUPS="autogen logs" \ + ADEI_PORTS=80 \ + APACHE_SERVERS=0 \ + MYSQL_SERVER=adei-mysql \ + MYSQL_PORT=3306 \ + MYSQL_USER=adei \ + MYSQL_PASSWORD=adei \ + MYSQL_DATABASE=adei \ + LANG=en_US.UTF-8 \ + LANGUAGE=en_US:en \ + LC_ALL=en_US.UTF-8 + +COPY files/ / # Installation of ADEI & dependencies RUN zypper ar http://download.opensuse.org/repositories/home:/csa7fff:/adei/openSUSE_Leap_42.3/home:csa7fff:adei.repo && \ zypper ar http://download.opensuse.org/repositories/server:/php:/extensions/openSUSE_Leap_42.3/server:php:extensions.repo && \ zypper ar http://download.opensuse.org/repositories/devel:languages:python/openSUSE_Tumbleweed/devel:languages:python.repo && \ zypper --gpg-auto-import-keys ref -s && \ + zypper -n in glibc-locale mc bzr git openssh telnet curl python-pycurl && \ zypper -n in supervisor procmail alpine which w3m && \ zypper -n in perl perl-DateTime-Format-Strptime mailx && \ zypper -n in make java && \ zypper -n in adei adei-config-default adei-req-mssql adei-webroot php-pecl-rrd && \ - zypper -n in bzr-webdav - -VOLUME /var/log/apache2 -VOLUME /var/spool/mail - -VOLUME /adei/src -VOLUME /adei/cfg -VOLUME /adei/tmp -VOLUME /adei/sys - - -COPY supervisor/supervisord.conf /etc/supervisord.conf - -# Apply configuration changes -COPY configs /opt/configs -COPY scripts /opt/scripts -RUN /opt/scripts/configure.sh - + zypper -n in bzr-webdav && \ + \ + bash -c 'mkdir -p /adei/{src,cfg,tmp,sys,log,mail}' && \ + /opt/scripts/configure.sh && \ + \ # Replace packaged ADEI with repository version -RUN rm -rf /srv/www/htdocs/adei && \ - ln -s /adei/src /srv/www/htdocs/adei - + rm -rf /srv/www/htdocs/adei && \ + ln -s /adei/src /srv/www/htdocs/adei && \ + for name in $(find /srv -mindepth 1 -maxdepth 1 -name '*.sh'); do rm "$name"; ln -s "/adei/src/scripts/cron/$(basename $name)" "$name"; done && \ + rm -f /etc/cron.d/adei.cron && \ + ln -s /adei/src/scripts/cron/adei.cron /etc/cron.d/adei.cron && \ + \ +# Consolidate all volumes in /adei + rm -rf /var/log/apache2 && \ + ln -s /adei/log /var/log/apache2 && \ + rm -rf /var/spool/mail && \ + ln -s /adei/mail /var/spool/mail && \ + \ # Modify for non-priviledged mode -RUN chmod +rx /etc/php5/conf.d && \ + chmod +rx /etc/php5/conf.d && \ ln -sf /etc/mime.types /etc/apache2/mime.types && \ find /etc/apache2 -type d -exec chmod +rx '{}' \; && \ chmod -R +r /etc/apache2 && \ @@ -49,27 +59,10 @@ RUN chmod +rx /etc/php5/conf.d && \ mkdir -p /etc/apache2/sysconfig.d && \ chmod a+rwx /etc/apache2/sysconfig.d && \ sed -i'' -re 's@/var/run@/tmp@' /usr/sbin/start_apache2 && \ - chmod +x /usr/sbin/start_apache2 - + chmod +x /usr/sbin/start_apache2 && \ + \ # Ugly python needs to resolve user name -RUN chmod g=u /etc/passwd - -ENV MYSQL_SERVER adei-mysql -ENV MYSQL_PORT 3306 -ENV MYSQL_USER adei -ENV MYSQL_PASSWORD adei -ENV MYSQL_DATABASE adei - -ENV ADEI_REVISION last:1 -ENV ADEI_PARALLEL sources -ENV ADEI_SETUP all -ENV ADEI_ENABLED_SETUPS autogen logs -ENV ADEI_PORTS 80 + chmod g=u /etc/passwd -ENV APACHE_SERVERS 0 - -COPY *-entrypoint.sh / ENTRYPOINT ["/docker-entrypoint.sh"] - -EXPOSE 80 CMD /usr/bin/supervisord -c /etc/supervisord.conf |