UNCLASSIFIED

Commit 21da81c4 authored by Tim Seagren's avatar Tim Seagren
Browse files

various updates to add php-fpm, entrypoint script, php.ini and healthcheck

parent d58d17a9
Pipeline #32336 passed with stage
......@@ -4,6 +4,8 @@ ARG BASE_TAG=8.2
FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG} as builder
ENV PHP_INI_PATH=/usr/local/etc/php
LABEL name="PHP" \
maintainer="seagren.tim@solute.us" \
vendor="Open Source" \
......@@ -57,18 +59,68 @@ RUN dnf update --setopt=tsflags=nodocs -y \
&& rm /usr/local/src/php.tar.gz \
&& cd /usr/local/src/php \
&& ./buildconf --force \
&& ./configure --without-pear \
&& ./configure \
--with-fpm-user=1001 \
--with-fpm-group=1001 \
--with-config-file-path=${PHP_INI_PATH} \
--with-config-file-scan-dir=${PHP_INI_PATH}/conf.d \
--without-pear \
--with-pdo-sqlite=/usr \
--with-sqlite3=/usr \
--enable-fpm \
&& make -j4 \
&& make install \
&& for cert in $(find /usr/local/src/php/ext/ -name "*.pem" -o -name "*.phpt" -o -name "*.crt" -o -name "*.key"); do rm $cert; done
&& for cert in $(find /usr/local/src/php/ext/ -name "*.pem" -o -name "*.phpt" -o -name "*.crt" -o -name "*.key"); do rm $cert; done \
&& sed 's!=NONE/!=!g' /usr/local/etc/php-fpm.conf.default | tee /usr/local/etc/php-fpm.conf > /dev/null \
&& mv /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG}
COPY --from=builder /usr/local/bin/php /usr/local/bin/phar /usr/local/bin/php-cgi /usr/local/bin/php-config /usr/local/bin/phpdbg /usr/local/bin/phpize /usr/local/bin/
COPY --from=builder /usr/local/php /usr/local/php
COPY --from=builder /usr/local/include/php /usr/local/include/php
ENV PHP_INI_PATH=/usr/local/etc/php
RUN mkdir -p ${PHP_INI_PATH}/conf.d /usr/local/etc/php-fpm.d /usr/local/var/log/php-fpm \
&& chown -R 1001:1001 /usr/local/var/log/php-fpm/ \
&& { \
echo '[global]'; \
echo 'error_log = /proc/self/fd/2'; \
echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \
echo; \
echo '[www]'; \
echo '; if we send this to /proc/self/fd/1, it never appears'; \
echo 'access.log = /proc/self/fd/2'; \
echo; \
echo 'clear_env = no'; \
echo; \
echo '; Ensure worker stdout and stderr are sent to the main error log.'; \
echo 'catch_workers_output = yes'; \
echo 'decorate_workers_output = no'; \
} | tee /usr/local/etc/php-fpm.d/docker.conf \
&& { \
echo '[global]'; \
echo 'daemonize = no'; \
echo; \
echo '[www]'; \
echo 'listen = 9000'; \
} | tee /usr/local/etc/php-fpm.d/zz-docker.conf \
&& mkdir -p /var/www/html/ \
&& chown 1001:1001 /var/www/html \
&& chmod 777 /var/www/html \
&& chown -R 1001:1001 /usr/local/etc/
COPY --from=builder --chown=1001:1001 /usr/local/sbin/php-fpm /usr/local/bin/php /usr/local/bin/phar /usr/local/bin/php-cgi /usr/local/bin/php-config /usr/local/bin/phpdbg /usr/local/bin/phpize /usr/local/bin/
COPY --from=builder --chown=1001:1001 /usr/local/php /usr/local/php
COPY --from=builder --chown=1001:1001 /usr/local/etc/php-fpm.conf /usr/local/etc/
COPY --from=builder --chown=1001:1001 /usr/local/etc/php-fpm.d/ /usr/local/etc/php-fpm.d/
COPY --from=builder --chown=1001:1001 /usr/local/include/php /usr/local/include/php
COPY config/php.ini ${PHP_INI_PATH}/php.ini
COPY scripts/docker-php-entrypoint /usr/local/bin/entrypoint
USER 1001
ENTRYPOINT ["php"]
CMD ["-v"]
WORKDIR "/var/www/html"
ENTRYPOINT ["entrypoint"]
CMD ["php-fpm"]
HEALTHCHECK \
CMD curl -s http://localhost:9000; if [ $? = 56 ]; then exit 0; else exit 1; fi
This diff is collapsed.
#!/bin/sh
set -e
# first arg is `-f` or `--some-option`
if [ "${1#-}" != "$1" ]; then
set -- php-fpm "$@"
fi
exec "$@"
  • Pipeline Status: SUCCESS
    Branch: 7.4.8

    graph LR
      0([setup]):::INTERNAL_SUCCESS --> 1([Import Artifacts]):::SUCCESS --> 2((/)):::INTERNAL_SUCCESS --> 3([Stage Artifacts]):::SUCCESS --> 4((/)):::INTERNAL_SUCCESS --> 5([Build]):::SUCCESS --> 6([Publish, Scan & Report]):::INTERNAL_NOT_BUILT
    
    classDef SUCCESS font-size:10px
    classDef FAILURE fill:#f44, font-size:10px
    classDef SKIPPED font-size:10px
    classDef ABORTED fill:#889, font-size:10px
    classDef INTERNAL_SUCCESS font-size:10px, stroke-dasharray: 2, 1
    classDef INTERNAL_FAILURE fill:#f44, font-size:10px, stroke-dasharray: 2, 1
    classDef INTERNAL_SKIPPED font-size:10px, stroke-dasharray: 2, 1
    classDef INTERNAL_ABORTED fill:#889, font-size:10px, stroke-dasharray: 2, 1
    
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment