Some checks failed
Cloud Apache Container / Build-and-Push (74) (push) Failing after 1m39s
Cloud Apache Container / Build-and-Push (80) (push) Failing after 1m11s
Cloud Apache Container / Build-and-Push (81) (push) Failing after 1m31s
Cloud Apache Container / Build-and-Push (82) (push) Failing after 54s
Cloud Apache Container / Build-and-Push (83) (push) Failing after 1m46s
Cloud Apache Container / Build-and-Push (84) (push) Failing after 1m47s
Cloud Apache Container / Build-and-Push (85) (push) Failing after 56s
Cloud Apache Container / Build-FPM-Images (74) (push) Failing after 1m42s
Cloud Apache Container / Build-FPM-Images (80) (push) Failing after 1m1s
Cloud Apache Container / Build-FPM-Images (81) (push) Failing after 55s
Cloud Apache Container / Build-FPM-Images (82) (push) Failing after 55s
Cloud Apache Container / Build-FPM-Images (83) (push) Failing after 59s
Cloud Apache Container / Build-FPM-Images (84) (push) Failing after 55s
Cloud Apache Container / Build-FPM-Images (85) (push) Failing after 57s
Cloud Apache Container / Build-Shared-httpd (push) Failing after 26s
Adds ImageMagick and ImageMagick-libs from the official CentOS x86_64 RPMs before PHP installation so php-pecl-imagick links against the latest version. Applied to both Dockerfile (standalone) and Dockerfile.fpm (shared httpd mode). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
53 lines
2.2 KiB
Docker
53 lines
2.2 KiB
Docker
FROM almalinux/9-base
|
|
ARG PHPVER=83
|
|
|
|
# Install repos, update, install only needed packages, clean up in one layer
|
|
RUN dnf install -y \
|
|
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
|
|
https://rpms.remirepo.net/enterprise/remi-release-9.rpm && \
|
|
dnf update -y && \
|
|
dnf install -y httpd mod_ssl wget procps cronie iproute postgresql-devel microdnf less git \
|
|
nano rsync unzip zip mariadb bind-utils jq patch nc tree dos2unix && \
|
|
dnf clean all && \
|
|
rm -rf /var/cache/dnf /usr/share/doc /usr/share/man /usr/share/locale/*
|
|
|
|
# Copy scripts into the image and set permissions
|
|
COPY ./scripts/ /scripts/
|
|
RUN chmod +x /scripts/*
|
|
|
|
# Install latest ImageMagick from official RPMs (before PHP so php-pecl-imagick links against it)
|
|
RUN dnf install -y \
|
|
https://imagemagick.org/archive/linux/CentOS/x86_64/ImageMagick-libs-7.1.2-18.x86_64.rpm \
|
|
https://imagemagick.org/archive/linux/CentOS/x86_64/ImageMagick-7.1.2-18.x86_64.rpm && \
|
|
dnf clean all
|
|
|
|
# Generate self-signed cert, create needed dirs, install PHP, clean up
|
|
RUN openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 3650 -subj "/CN=localhost" -out /etc/pki/tls/certs/localhost.crt && \
|
|
mkdir -p /run/php-fpm/ && \
|
|
/scripts/install-php$PHPVER.sh && \
|
|
rm -rf /tmp/*
|
|
|
|
# Download and install wp-cli (consider pinning version for reproducibility)
|
|
RUN curl -L -o /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
|
|
chmod +x /usr/local/bin/wp
|
|
|
|
# Download and install Composer
|
|
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
|
|
chmod +x /usr/local/bin/composer
|
|
|
|
# Copy configs and web files
|
|
COPY ./configs/default-index.conf /etc/httpd/conf.d/
|
|
COPY ./configs/prod-php.ini /etc/php.ini
|
|
COPY ./configs/phpinfo.php /var/www/html/
|
|
COPY ./configs/mariadb.repo /etc/yum.repos.d/
|
|
COPY ./configs/index.php /var/www/html/
|
|
COPY ./configs/remote_ip.conf /etc/httpd/conf.d/
|
|
|
|
# Set up cron job in a single layer
|
|
RUN echo "15 */12 * * * root /scripts/log-rotate.sh" >> /etc/crontab
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
|
|
CMD curl -f http://localhost/ || exit 1
|
|
|
|
ENTRYPOINT [ "/scripts/entrypoint.sh" ]
|