Jeroen De Meerleer
34db79b3ab
- Update the base image for nodebuilder from node:18 to node:20 - Update the base image for php in Dockerfile and Dockerfile.daemon from php:8.1 to php:8.3 - Remove unnecessary packages installation in Dockerfile, Dockerfile.daemon, and Dockerfile.webui - Set APACHE_DOCUMENT_ROOT, WEBCRON_ROOT, and TZ environment variables in all three Dockerfiles
40 lines
1.5 KiB
Docker
40 lines
1.5 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 bcmath pdo_mysql opcache memcached pcntl 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"]
|