FROM ubuntu:22.04 ARG HTTP_PROXY= ARG HTTPS_PROXY= ARG http_proxy= ARG https_proxy= ENV WAITFORIT_VERSION="v2.4.1" ARG PHP_VERSION="8.1" ENV PHP_VERSION $PHP_VERSION RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update -y && \ apt-get install -y software-properties-common && \ add-apt-repository ppa:ondrej/php && \ apt-get update -y && \ apt-get install -y --no-install-recommends \ git bash wget ca-certificates supervisor cron rsyslog mysql-client jq \ mutt tree vim python3-setuptools python3-pip make \ php${PHP_VERSION}-cli php${PHP_VERSION}-ldap php${PHP_VERSION}-soap \ php${PHP_VERSION}-intl php${PHP_VERSION}-curl php${PHP_VERSION}-gd \ php${PHP_VERSION}-xml php${PHP_VERSION}-bcmath \ php${PHP_VERSION}-zip php${PHP_VERSION}-fpm \ php${PHP_VERSION}-mbstring \ php${PHP_VERSION}-pgsql \ php${PHP_VERSION}-pdo-pgsql \ php${PHP_VERSION}-ssh2 libxml2-utils \ locales \ apache2 \ libapache2-mod-fcgid \ ssh-client \ acl moreutils \ sudo # Set fr_FR locale RUN sed -i -e 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen && \ dpkg-reconfigure --frontend=noninteractive locales && \ update-locale LANG=fr_FR.UTF-8 ENV LC_ALL fr_FR.UTF-8 ENV LANG fr_FR.UTF-8 ENV LANGUAGE fr_FR.UTF-8 # Waitforit - Wait for all service is running before launch tests RUN wget -q -O /usr/local/bin/waitforit https://github.com/maxcnunes/waitforit/releases/download/$WAITFORIT_VERSION/waitforit-linux_amd64 \ && chmod +x /usr/local/bin/waitforit # Install superfsmon to restart supervisor programs on file changes RUN pip3 install wheel superfsmon VOLUME /var/www VOLUME /var/www/var/logs VOLUME /var/www/var/cache # Install composer COPY install-composer.sh /var/www/install-composer.sh RUN chmod +x /var/www/install-composer.sh &&\ /var/www/install-composer.sh &&\ rm -f /var/www/install-composer.sh # On active les mods d'apache nécessaires RUN a2enmod rewrite RUN a2enmod proxy_fcgi setenvif RUN a2enconf php8.1-fpm RUN a2enmod proxy RUN a2enmod expires RUN a2enmod headers # On injecte les bonnes configs apache et php-fpm COPY 000-default.conf /etc/apache2/sites-available/000-default.conf COPY www.conf /etc/php/8.1/fpm/pool.d/www.conf EXPOSE 5000 EXPOSE 80 WORKDIR /var/www # On démarre php-fpm une fois pour créer les sockets RUN service php8.1-fpm start RUN service php8.1-fpm stop COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh COPY first-run.sh /root/first-run.sh RUN chmod +x /root/first-run.sh # Disable rsyslog privileges drop to allow stdout logging RUN sed -i 's/^\$\(PrivDropTo.*\)$/#\1/' /etc/rsyslog.conf RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf COPY rsyslog.conf /etc/rsyslog.d/var/www.conf COPY supervisor.ini /etc/supervisor/supervisor.ini COPY php.ini /etc/php/8.1/fpm/php.ini VOLUME /container-lifecycle RUN wget -O- https://github.com/boxboat/fixuid/releases/download/v0.5.1/fixuid-0.5.1-linux-amd64.tar.gz | tar -C /usr/local/bin -xzf - \ && chown root:root /usr/local/bin/fixuid \ && chmod 4755 /usr/local/bin/fixuid \ && mkdir -p /etc/fixuid COPY fixuid.yml /etc/fixuid/config.yml ENTRYPOINT ["/usr/local/bin/fixuid"] RUN echo "www-data ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/www-data USER www-data CMD ["/docker-entrypoint.sh"]