Browse Source

remove cron, run pure background job

Jan Behrens 4 years ago
parent
commit
163e0e18fa
3 changed files with 25 additions and 13 deletions
  1. 7 13
      Dockerfile
  2. 14 0
      docker-entrypoint.sh
  3. 4 0
      poll_data.sh

+ 7 - 13
Dockerfile

@@ -3,7 +3,7 @@ FROM ubuntu:bionic
 RUN apt-get update && \
     apt-get -y upgrade && \
     DEBIAN_FRONTEND=noninteractive apt-get -y install \
-        apache2 php7.2 libapache2-mod-php7.2 libcap2-bin curl cron git
+        apache2 php7.2 libapache2-mod-php7.2 libcap2-bin curl
 
 RUN a2enmod php7.2
 
@@ -16,27 +16,21 @@ ENV APACHE_LOG_DIR /var/log/apache2
 ENV APACHE_LOCK_DIR /var/lock/apache2
 ENV APACHE_PID_FILE /var/run/apache2.pid
 
-RUN rm -rf /var/www/html/*
-ADD . /var/www/html
-RUN chown -R www-data:www-data /var/www/html
-
-RUN touch /var/log/cron.log && chown www-data /var/log/cron.log && \
-    touch /var/run/crond.pid && chown www-data /var/run/crond.pid && \
-    setcap 'cap_setuid=+ep' /usr/sbin/cron
-
 RUN mkdir -p /var/log/apache2 && chown -R www-data /var/log/apache2 && \
     mkdir -p /var/run/apache2 && chown -R www-data /var/run/apache2 && \
     mkdir -p /var/lock/apache2 && chown -R www-data /var/lock/apache2 && \
     setcap 'cap_net_bind_service=+ep' /usr/sbin/apache2
 
-USER www-data
+RUN rm -rf /var/www/html/*
+ADD . /var/www/html
+RUN chown -R www-data:www-data /var/www/html
 
-RUN (crontab -l ; echo "* * * * * cd /var/www/html && php poll_adei_data.php >> /var/log/cron.log") | crontab
-RUN (crontab -l ; echo "* * * * * cd /var/www/html && php poll_HV_data.php >> /var/log/cron.log") | crontab
+USER www-data
 
 ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf
+ADD docker-entrypoint.sh /docker-entrypoint.sh
 
 EXPOSE 80
 
 WORKDIR /var/www/html
-CMD cron && apache2ctl -D FOREGROUND
+ENTRYPOINT /docker-entrypoint.sh

+ 14 - 0
docker-entrypoint.sh

@@ -0,0 +1,14 @@
+#!/bin/sh
+
+(
+    sleep 10
+    while true; do
+        [ -f poll_data.sh ] && echo "Polling data." && ./poll_data.sh
+        sleep 60
+    done
+) &
+
+echo "Running apache server ..."
+/usr/sbin/apache2ctl -D FOREGROUND $@
+
+echo "Server terminated!"

+ 4 - 0
poll_data.sh

@@ -0,0 +1,4 @@
+#!/bin/sh
+
+php poll_adei_data.php
+php poll_HV_data.php