summaryrefslogtreecommitdiffstats
path: root/adei/Dockerfile
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2019-10-01 19:30:54 +0200
committerSuren A. Chilingaryan <csa@suren.me>2019-10-01 19:30:54 +0200
commit79c76eaef5039276bb3a8725ac8c9f05f89ef0de (patch)
tree1bde68d36ce44d75fafc6dfb41f5f6d2b555815f /adei/Dockerfile
parentbc1b77dc912adfd040d432972e2d3256c9ea2065 (diff)
downloadadei-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/Dockerfile91
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