docker/Dockerfile.daemon
Jeroen De Meerleer 0fc2298106
Added health checks to Dockerfiles
Health check commands have been added to the Dockerfiles. These checks will run at an interval of 30 seconds, with a timeout of 10 seconds and a start period of 5 seconds. The system will retry these checks up to three times before marking the service as unhealthy. Different health check commands are used depending on the specific Dockerfile.
2024-12-13 11:35:58 +01:00

46 lines
1.7 KiB
Docker

FROM php:8.3
RUN apt-get update -y && apt-get install -y git
ENV APACHE_DOCUMENT_ROOT=/var/www/webcron/public/
ENV WEBCRON_ROOT=/var/www/webcron/
ENV TZ=Europe/Brussels
ENV COMPOSER_ALLOW_SUPERUSER=1 DEBIAN_FRONTEND=noninteractive
ARG VERSION
RUN git clone https://git.jeroened.be/webcron/webcron.git ${WEBCRON_ROOT}
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin
RUN set -eux; \
chmod uga+x /usr/local/bin/install-php-extensions && sync
RUN set -eux;install-php-extensions intl
RUN set -eux;install-php-extensions pdo_mysql
RUN set -eux;install-php-extensions opcache
RUN set -eux;install-php-extensions pcntl
RUN set -eux;install-php-extensions zip
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
RUN printf "[PHP]\ndate.timezone = \"$TZ\"\n" > /usr/local/etc/php/conf.d/tzone.ini
COPY wait-for-it.sh /usr/local/bin/wait-for-it.sh
COPY entrypoint.daemon.sh /usr/local/bin/entrypoint.sh
RUN set -eux; \
mv ${WEBCRON_ROOT}.env.sample ${WEBCRON_ROOT}.env && \
chown -R www-data:www-data ${WEBCRON_ROOT} && \
chmod uga+x /usr/local/bin/wait-for-it.sh && \
chmod uga+x /usr/local/bin/entrypoint.sh && sync
USER www-data
WORKDIR ${WEBCRON_ROOT}
RUN composer install
RUN bash -c "if [ -n \"${VERSION}\" ] ; then echo ${VERSION} > ${WEBCRON_ROOT}/version ; fi"
USER root
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD bin/console webcron:health