mirror of
https://github.com/clearlinux/dockerfiles.git
synced 2026-08-26 18:35:58 +00:00
114295de66
Note that variable expansion in --from and FROM was working oddly, see: https://github.com/docker/cli/issues/3356#issuecomment-957892224 for context.
77 lines
2.2 KiB
Docker
77 lines
2.2 KiB
Docker
ARG clear_ver
|
|
FROM ghcr.io/clearlinux/os-core:$clear_ver AS core
|
|
FROM clearlinux:latest AS builder
|
|
|
|
ARG clear_ver
|
|
ARG swupd_args
|
|
# Move to latest Clear Linux release to ensure
|
|
# that the swupd command line arguments are
|
|
# correct
|
|
RUN swupd update --no-boot-update -V $clear_ver $swupd_args
|
|
|
|
# Grab os-release info from the minimal base image so
|
|
# that the new content matches the exact OS version
|
|
COPY --from=core /usr/lib/os-release /
|
|
|
|
# Install additional content in a target directory
|
|
# using the os version from the minimal base
|
|
RUN source /os-release && \
|
|
mkdir /install_root \
|
|
&& swupd os-install -V ${VERSION_ID} \
|
|
--path /install_root --statedir /swupd-state \
|
|
--bundles=os-core-update,php-basic,curl --no-boot-update
|
|
|
|
# For some Host OS configuration with redirect_dir on,
|
|
# extra data are saved on the upper layer when the same
|
|
# file exists on different layers. To minimize docker
|
|
# image size, remove the overlapped files before copy.
|
|
RUN mkdir /os_core_install
|
|
COPY --from=core / /os_core_install/
|
|
RUN cd / && \
|
|
find os_core_install | sed -e 's/os_core_install/install_root/' | xargs rm -d &> /dev/null || true
|
|
|
|
|
|
FROM core
|
|
|
|
COPY --from=builder /install_root /
|
|
|
|
RUN set -ex \
|
|
mkdir -p /var/www/html \
|
|
&& cd /usr/share/defaults/php \
|
|
&& { \
|
|
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 php-fpm.d/docker.conf \
|
|
&& { \
|
|
echo '[global]'; \
|
|
echo 'daemonize = no'; \
|
|
echo; \
|
|
echo '[www]'; \
|
|
echo 'user = httpd'; \
|
|
echo 'group = httpd'; \
|
|
echo 'listen = 9000'; \
|
|
echo 'pm = dynamic'; \
|
|
} | tee php-fpm.d/zz-docker.conf
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
COPY docker-php-entrypoint /usr/local/bin/
|
|
RUN chmod +x /usr/local/bin/docker-php-entrypoint
|
|
ENTRYPOINT ["docker-php-entrypoint"]
|
|
|
|
STOPSIGNAL SIGQUIT
|
|
|
|
EXPOSE 9000
|
|
CMD ["php-fpm"]
|