Skip to content

Commit 9edb2b7

Browse files
authored
Merge pull request #10 from discoverygarden/DDST-651
ISX-71: Update Php in Base image
2 parents ffc9981 + a7ccfba commit 9edb2b7

File tree

1 file changed

+72
-20
lines changed

1 file changed

+72
-20
lines changed

Dockerfile

Lines changed: 72 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
FROM debian:12-slim
1+
ARG BUILD_DIR=/build
2+
ARG BASE_IMAGE=debian:12-slim
3+
4+
FROM $BASE_IMAGE AS debsuryorg-key
5+
6+
ARG BUILD_DIR
7+
ADD --link https://packages.sury.org/debsuryorg-archive-keyring.deb $BUILD_DIR/debsuryorg-archive-keyring.deb
8+
9+
FROM $BASE_IMAGE
210

311
ARG TARGETARCH
412
ARG TARGETVARIANT
@@ -40,35 +48,79 @@ ENV CLAMAV_PORT=3310
4048
ENV SOLR_HOME=/var/solr/data
4149
ENV SOLR_HOCR_PLUGIN_PATH=${SOLR_HOME}/contrib/ocrhighlighting/lib
4250

51+
ENV PHP_VERSION=8.3
52+
ENV DEBIAN_FRONTEND=noninteractive
53+
4354
COPY clear-cache /bin/clear-cache
4455

56+
# Use Dockerfile-native mechanisms for PHP repo setup
57+
# Procedure adapted from https://packages.sury.org/php/README.txt
58+
ARG BUILD_DIR
59+
RUN \
60+
--mount=type=bind,target=$BUILD_DIR,source=$BUILD_DIR,from=debsuryorg-key \
61+
dpkg -i $BUILD_DIR/debsuryorg-archive-keyring.deb
4562
RUN \
4663
--mount=type=cache,target=/var/lib/apt/lists,sharing=locked,id=debian-apt-lists-$TARGETARCH$TARGETVARIANT \
4764
--mount=type=cache,target=/var/cache/apt/archives,sharing=locked,id=debian-apt-archives-$TARGETARCH$TARGETVARIANT \
4865
<<EOS
4966
set -e
50-
apt-get -qqy update
51-
DEBIAN_FRONTEND=noninteractive apt-get install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends --no-install-suggests \
52-
ca-certificates curl git patch openssh-client openssl sudo unzip wget \
53-
postgresql-client postgresql-client-common \
54-
imagemagick poppler-utils \
55-
apache2 apache2-utils php php-common php-dev libapache2-mod-php \
56-
php-ctype php-curl php-fileinfo php-gd php-iconv php-json \
57-
php-mbstring php-pgsql php-phar php-pdo \
58-
php-simplexml php-tokenizer php-xml php-zip \
59-
php-memcached libmemcached-tools \
60-
php-intl php-apcu php-soap \
61-
gh
67+
apt-get update
68+
apt-get install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends --no-install-suggests lsb-release ca-certificates
69+
echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
70+
apt-get update
71+
EOS
6272

73+
RUN \
74+
--mount=type=cache,target=/var/lib/apt/lists,sharing=locked,id=debian-apt-lists-$TARGETARCH$TARGETVARIANT \
75+
--mount=type=cache,target=/var/cache/apt/archives,sharing=locked,id=debian-apt-archives-$TARGETARCH$TARGETVARIANT \
76+
<<EOS
77+
set -e
78+
apt-get update
79+
apt-get install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends --no-install-suggests \
80+
curl \
81+
git \
82+
patch \
83+
openssh-client \
84+
openssl \
85+
sudo \
86+
unzip \
87+
postgresql-client \
88+
postgresql-client-common \
89+
imagemagick \
90+
poppler-utils \
91+
apache2 \
92+
apache2-utils \
93+
libapache2-mod-php${PHP_VERSION} \
94+
php${PHP_VERSION} \
95+
php${PHP_VERSION}-common \
96+
php${PHP_VERSION}-dev \
97+
php${PHP_VERSION}-ctype \
98+
php${PHP_VERSION}-curl \
99+
php${PHP_VERSION}-fileinfo \
100+
php${PHP_VERSION}-gd \
101+
php${PHP_VERSION}-iconv \
102+
php${PHP_VERSION}-mbstring \
103+
php${PHP_VERSION}-pgsql \
104+
php${PHP_VERSION}-phar \
105+
php${PHP_VERSION}-pdo \
106+
php${PHP_VERSION}-simplexml \
107+
php${PHP_VERSION}-tokenizer \
108+
php${PHP_VERSION}-xml \
109+
php${PHP_VERSION}-zip \
110+
php${PHP_VERSION}-memcached \
111+
libmemcached-tools \
112+
php${PHP_VERSION}-intl \
113+
php${PHP_VERSION}-apcu \
114+
gh
63115
EOS
64116

65-
#--------------------------------------------------------------
66-
# setup PHP
67-
ENV PHP_INI_DIR=/etc/php/8.2
68-
WORKDIR $PHP_INI_DIR
69-
COPY --link dgi_99-config.ini dgi/conf.d/99-config.ini
70-
RUN ln -s $PHP_INI_DIR/dgi/conf.d/99-config.ini apache2/conf.d/99-config.ini \
71-
&& ln -s $PHP_INI_DIR/dgi/conf.d/99-config.ini cli/conf.d/99-config.ini
117+
ENV PHP_INI_DIR=/etc/php/$PHP_VERSION
118+
ENV DGI_PHP_INI=/etc/php/dgi/99-config.ini
119+
120+
# Use the DGI_PHP_INI variable directly for copying config
121+
COPY --link dgi_99-config.ini ${DGI_PHP_INI}
122+
RUN ln -s ${DGI_PHP_INI} ${PHP_INI_DIR}/apache2/conf.d/99-config.ini \
123+
&& ln -s ${DGI_PHP_INI} ${PHP_INI_DIR}/cli/conf.d/99-config.ini
72124
# Back out to the original WORKDIR.
73125
WORKDIR /
74126

0 commit comments

Comments
 (0)