|
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 |
2 | 10 |
|
3 | 11 | ARG TARGETARCH |
4 | 12 | ARG TARGETVARIANT |
@@ -40,35 +48,79 @@ ENV CLAMAV_PORT=3310 |
40 | 48 | ENV SOLR_HOME=/var/solr/data |
41 | 49 | ENV SOLR_HOCR_PLUGIN_PATH=${SOLR_HOME}/contrib/ocrhighlighting/lib |
42 | 50 |
|
| 51 | +ENV PHP_VERSION=8.3 |
| 52 | +ENV DEBIAN_FRONTEND=noninteractive |
| 53 | + |
43 | 54 | COPY clear-cache /bin/clear-cache |
44 | 55 |
|
| 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 |
45 | 62 | RUN \ |
46 | 63 | --mount=type=cache,target=/var/lib/apt/lists,sharing=locked,id=debian-apt-lists-$TARGETARCH$TARGETVARIANT \ |
47 | 64 | --mount=type=cache,target=/var/cache/apt/archives,sharing=locked,id=debian-apt-archives-$TARGETARCH$TARGETVARIANT \ |
48 | 65 | <<EOS |
49 | 66 | 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 |
62 | 72 |
|
| 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 |
63 | 115 | EOS |
64 | 116 |
|
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 |
72 | 124 | # Back out to the original WORKDIR. |
73 | 125 | WORKDIR / |
74 | 126 |
|
|
0 commit comments