Namespace
roundcube
Image / Tag
roundcubemail:1.6.x-apache
Content Digest
sha256:a729b97aa6ba13e2bd70415dfb486b2c9ede269d201d8aebd1329d81964b0fa7
Details
Created

2026-03-23 04:47:54 UTC

Size

252 MB

Content Digest
Labels
  • maintainer
    Thomas Bruederli <[email protected]>
  • org.opencontainers.image.source
    https://github.com/roundcube/roundcubemail-docker

Environment
APACHE_CONFDIR

/etc/apache2

APACHE_ENVVARS

/etc/apache2/envvars

GPG_KEYS

AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PHPIZE_DEPS

autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

PHP_ASC_URL

https://www.php.net/distributions/php-8.4.19.tar.xz.asc

PHP_CFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_CPPFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_INI_DIR

/usr/local/etc/php

PHP_LDFLAGS

-Wl,-O1 -pie

PHP_SHA256

11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

PHP_URL

https://www.php.net/distributions/php-8.4.19.tar.xz

PHP_VERSION

8.4.19

ROUNDCUBEMAIL_KEYID

F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

ROUNDCUBEMAIL_VERSION

1.6.14


Layers

[#000] sha256:2c0c3f3238f3d4cecd93e4dee6eda788943ef955de61c3ad4ff659da1f43ba60 - 11.86% (29.8 MB)

[#001] sha256:4dff18cd405b0077f8c0cc220744ee2fd3352b9a92a1ec478206127eeeaedf01 - 0.0% (224 Bytes)

[#002] sha256:3f6834162b03896936de217cd3bc496c3a3bbc10417cad5f4f6f4c703fc07e4c - 44.02% (111 MB)

[#003] sha256:05aa4986b735ced1046b1a93e12899e1fc9147484cbe2cf1d6e2ff6e99e61ed8 - 0.0% (225 Bytes)

[#004] sha256:2cdae570efb63aa57a6c3546f494610cee0681f3cb5b63cb24ac816061cffbff - 1.69% (4.25 MB)

[#005] sha256:92beef1c97f015cc7959f33f2ad777c9b54ba4e3f09f9866b0c8ba8c371c5926 - 0.0% (434 Bytes)

[#006] sha256:c8755df3603ba77d219f16f8073b5726580cc701da578699d0fed873b7709bbc - 0.0% (488 Bytes)

[#007] sha256:8a46a9c83629f1573d06722f55d9a12018823b0a3d35062204f5cd07ddef6c44 - 5.25% (13.2 MB)

[#008] sha256:64ee681db10faadf038e120c78c250617e33deee1464845d3d26c7772432d8ee - 0.0% (485 Bytes)

[#009] sha256:49502917b604d4c17995e1d4b56b9620a7db42a4544cf085035d6df4ae1f2ccb - 5.25% (13.2 MB)

[#010] sha256:48be00ed3f6de888b4c1e814ccf56e8d54196b66d4f9347572faf21708e1cc5e - 0.0% (2.4 KB)

[#011] sha256:4cd1e1a91daceb2a537a2440bd633ea34e3067b88bc6b0622c60c8b925d3bd23 - 0.0% (249 Bytes)

[#012] sha256:f6f1acc1a24b7377f67146709c518d224829aea9e12cc77b88811dc5d3b54992 - 0.0% (243 Bytes)

[#013] sha256:ce29992c3ca7e44083b9ab7da772833c13fa8628a452436b14ae5b40996ed1ce - 0.0% (891 Bytes)

[#014] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#015] sha256:b9eda41beca52720f2412875372b4dc91f12437982c7199a1766be28ff3bf360 - 6.3% (15.9 MB)

[#016] sha256:96a7762360d4b218644d73aad6b255c79362c0931049f746a0cc5627936583b7 - 23.12% (58.2 MB)

[#017] sha256:bd4d6bac64d23802722f776f1633b89f18b847be7d8f81bb7e71ee1fae2ef1b1 - 0.29% (759 KB)

[#018] sha256:251887c54a6201c6f40e8a4006ec977045d4ef25422aef31a7f4af583b78ad6d - 0.01% (22.2 KB)

[#019] sha256:a2a22af58a96f6bb6921c1b2f85780b630f79c6e7d0e2983d7ab5b63974d417f - 0.0% (363 Bytes)

[#020] sha256:82bc62aa026eccd53a9b561261e43f7d75ebc9210a8c56a0dd03deb0870e7b5e - 0.0% (2.79 KB)

[#021] sha256:368a5462c29b51653b4f7d305189d482b69bb638062160458d77e8c09a518edd - 2.21% (5.56 MB)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'i386' out/ 'trixie' '@1773619200'

2026-03-16 22:19:18 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; { echo 'Package: php*'; echo 'Pin: release *'; echo 'Pin-Priority: -1'; } > /etc/apt/preferences.d/no-debian-php # buildkit

2026-03-16 22:19:36 UTC (buildkit.dockerfile.v0)

ENV PHPIZE_DEPS=autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

2026-03-16 22:19:36 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends $PHPIZE_DEPS ca-certificates curl xz-utils ; apt-get dist-clean # buildkit

2026-03-16 22:19:36 UTC (buildkit.dockerfile.v0)

ENV PHP_INI_DIR=/usr/local/etc/php

2026-03-16 22:19:36 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR/conf.d"; [ ! -d /var/www/html ]; mkdir -p /var/www/html; chown www-data:www-data /var/www/html; chmod 1777 /var/www/html # buildkit

2026-03-16 22:19:36 UTC (buildkit.dockerfile.v0)

ENV APACHE_CONFDIR=/etc/apache2

2026-03-16 22:19:36 UTC (buildkit.dockerfile.v0)

ENV APACHE_ENVVARS=/etc/apache2/envvars

2026-03-16 22:23:07 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends apache2; apt-get dist-clean; sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; . "$APACHE_ENVVARS"; for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR" "$APACHE_RUN_DIR/socks" ; do rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; chmod 1777 "$dir"; done; rm -rvf /var/www/html/*; ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" # buildkit

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c a2dismod mpm_event && a2enmod mpm_prefork # buildkit

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c { echo '<FilesMatch \.php$>'; echo '\tSetHandler application/x-httpd-php'; echo '</FilesMatch>'; echo; echo 'DirectoryIndex disabled'; echo 'DirectoryIndex index.php index.html'; echo; echo '<Directory /var/www/>'; echo '\tOptions -Indexes'; echo '\tAllowOverride All'; echo '</Directory>'; } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" && a2enconf docker-php # buildkit

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

ENV PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

ENV PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

ENV PHP_LDFLAGS=-Wl,-O1 -pie

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

ENV GPG_KEYS=AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

ENV PHP_VERSION=8.4.19

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

ENV PHP_URL=https://www.php.net/distributions/php-8.4.19.tar.xz PHP_ASC_URL=https://www.php.net/distributions/php-8.4.19.tar.xz.asc

2026-03-16 22:23:08 UTC (buildkit.dockerfile.v0)

ENV PHP_SHA256=11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

2026-03-16 22:23:17 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg; apt-get dist-clean; mkdir -p /usr/src; cd /usr/src; curl -fsSL -o php.tar.xz "$PHP_URL"; if [ -n "$PHP_SHA256" ]; then echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; fi; curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify php.tar.xz.asc php.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME"; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false # buildkit

2026-03-16 22:23:17 UTC (buildkit.dockerfile.v0)

COPY docker-php-source /usr/local/bin/ # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends apache2-dev libargon2-dev libcurl4-openssl-dev libonig-dev libreadline-dev libsodium-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev ; export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" PHP_BUILD_PROVIDER='https://github.com/docker-library/php' PHP_UNAME='Linux - Docker' ; docker-php-source extract; cd /usr/src/php; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; if [ ! -d /usr/include/curl ]; then ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; fi; test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; ./configure --build="$gnuArch" --sysconfdir="${PHP_INI_DIR%/php}" --with-config-file-path="$PHP_INI_DIR" --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" --enable-option-checking=fatal --with-mhash --with-pic --enable-mbstring --enable-mysqlnd --with-password-argon2 --with-sodium=shared --with-pdo-sqlite=/usr --with-sqlite3=/usr --with-curl --with-iconv --with-openssl --with-readline --with-zlib --disable-phpdbg --with-pear --with-libdir="lib/$debMultiarch" --disable-cgi --with-apxs2 ; make -j "$(nproc)"; find -type f -name '*.a' -delete; make install; find /usr/local -type f -perm '/0111' -exec sh -euxc ' strip --strip-all "$@" || : ' -- '{}' + ; make clean; cp -v php.ini-* "$PHP_INI_DIR/"; cd /; docker-php-source delete; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; pecl update-channels; rm -rf /tmp/pear ~/.pearrc; php --version # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable opcache # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable sodium # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-php-entrypoint"]

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

STOPSIGNAL SIGWINCH

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

COPY apache2-foreground /usr/local/bin/ # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

WORKDIR /var/www/html

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

EXPOSE map[80/tcp:{}]

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

2026-03-23 04:42:59 UTC (buildkit.dockerfile.v0)

LABEL maintainer=Thomas Bruederli <[email protected]>

2026-03-23 04:42:59 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/roundcube/roundcubemail-docker

2026-03-23 04:42:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get -y upgrade && apt-get clean # buildkit

2026-03-23 04:47:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; if [ "apache" = "apache" ]; then a2enmod rewrite; sed -i -e 's|\(DocumentRoot /var/www/html\)$|\1/public_html|' /etc/apache2/sites-available/000-default.conf; fi; apt-get update; savedAptMark="$(apt-mark showmanual)"; apt-get install -y --no-install-recommends libfreetype6-dev libicu-dev libjpeg62-turbo-dev libldap2-dev libsasl2-dev libmagickwand-dev libpng-dev libpq-dev libsqlite3-dev libzip-dev libpspell-dev libonig-dev libldap-common ; fetchDeps="gnupg locales libc-l10n"; installDeps="aspell aspell-en rsync unzip"; apt-get install -y --no-install-recommends $installDeps $fetchDeps ; pecl bundle -d /usr/src/php/ext imagick; pecl bundle -d /usr/src/php/ext redis; pecl bundle -d /usr/src/php/ext pspell; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; docker-php-ext-configure gd --with-jpeg --with-freetype; docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch" --with-ldap-sasl; docker-php-ext-install exif gd intl ldap pdo_mysql pdo_pgsql pdo_sqlite zip pspell imagick redis ; docker-php-ext-enable imagick opcache redis; docker-php-source delete; rm -r /tmp/pear; php -m; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark $installDeps $fetchDeps; extdir="$(php -r 'echo ini_get("extension_dir");')"; ldd "$extdir"/*.so | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query -S | cut -d: -f1 | sort -u | xargs -rt apt-mark manual; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); err="$(php --version 3>&1 1>&2 2>&3)"; [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); curl -fL https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh -o /wait-for-it.sh; chmod +x /wait-for-it.sh; # buildkit

2026-03-23 04:47:52 UTC (buildkit.dockerfile.v0)

COPY /usr/bin/composer /usr/bin/composer # buildkit

2026-03-23 04:47:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # buildkit

2026-03-23 04:47:52 UTC (buildkit.dockerfile.v0)

COPY php.ini /usr/local/etc/php/conf.d/roundcube-defaults.ini # buildkit

2026-03-23 04:47:52 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker-entrypoint.sh / # buildkit

2026-03-23 04:47:52 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_VERSION=1.6.14

2026-03-23 04:47:52 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_KEYID=F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

2026-03-23 04:47:54 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; curl -o roundcubemail.tar.gz -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz; curl -o roundcubemail.tar.gz.asc -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz.asc; export GNUPGHOME="$(mktemp -d)"; curl -fSL https://roundcube.net/download/pubkey.asc -o /tmp/pubkey.asc; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o 'Key fingerprint') != 1 ]; then echo 'The key file should contain only one GPG key'; exit 1; fi; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o "${ROUNDCUBEMAIL_KEYID}") != 1 ]; then echo 'The key ID should be the roundcube one'; exit 1; fi; gpg --batch --import /tmp/pubkey.asc; rm /tmp/pubkey.asc; gpg --batch --verify roundcubemail.tar.gz.asc roundcubemail.tar.gz; gpgconf --kill all; mkdir /usr/src/roundcubemail; tar -xf roundcubemail.tar.gz -C /usr/src/roundcubemail --strip-components=1 --no-same-owner; rm -r "$GNUPGHOME" roundcubemail.tar.gz.asc roundcubemail.tar.gz; rm -rf /usr/src/roundcubemail/installer; chown -R www-data:www-data /usr/src/roundcubemail/logs; mkdir -p /var/roundcube/config /var/roundcube/enigma; chown -R www-data:www-data /var/roundcube; chmod +t /var/roundcube # buildkit

2026-03-23 04:47:54 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/docker-entrypoint.sh"]

2026-03-23 04:47:54 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

Details
Created

2026-03-23 04:41:40 UTC

Size

250 MB

Content Digest
Labels
  • maintainer
    Thomas Bruederli <[email protected]>
  • org.opencontainers.image.source
    https://github.com/roundcube/roundcubemail-docker

Environment
APACHE_CONFDIR

/etc/apache2

APACHE_ENVVARS

/etc/apache2/envvars

GPG_KEYS

AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PHPIZE_DEPS

autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

PHP_ASC_URL

https://www.php.net/distributions/php-8.4.19.tar.xz.asc

PHP_CFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_CPPFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_INI_DIR

/usr/local/etc/php

PHP_LDFLAGS

-Wl,-O1 -pie

PHP_SHA256

11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

PHP_URL

https://www.php.net/distributions/php-8.4.19.tar.xz

PHP_VERSION

8.4.19

ROUNDCUBEMAIL_KEYID

F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

ROUNDCUBEMAIL_VERSION

1.6.14


Layers

[#000] sha256:ec781dee3f4719c2ca0dd9e73cb1d4ed834ed1a406495eb6e44b6dfaad5d1f8f - 11.34% (28.4 MB)

[#001] sha256:6ceb58543f0f93458c9f20c0c91c2f936b1955ec87a41fcedcf51007bca04aed - 0.0% (224 Bytes)

[#002] sha256:609f20b19c60b26392cfc424cff13a0977b37ba0930946af6ff62f4876489194 - 44.86% (112 MB)

[#003] sha256:ffa4bc0b49bebf7b563b19647efc8d0a4a1e82a3f3716336b222c0537650a606 - 0.0% (225 Bytes)

[#004] sha256:b9dd2477210e9928cda9a59f210e4bca2d060f401652c074304a265e1e4fd0a1 - 1.61% (4.03 MB)

[#005] sha256:64c3c1b02bee71270c50c6ac9628b2ee5b5a99130d56a54263f3dd2cf233d058 - 0.0% (432 Bytes)

[#006] sha256:fa8909101519147d95c930ad13b45e3d969f33ecda1d804f0701e13d24c3b0e8 - 0.0% (483 Bytes)

[#007] sha256:1b4e2414384c7c95899cc461d14ac47d43e988b841f5cb43f4ba9607ff0d6dc1 - 5.27% (13.2 MB)

[#008] sha256:4c0632ce6011d1cb99266711e5d9c127b98babfa9aa70c39dc45e079758f5e34 - 0.0% (487 Bytes)

[#009] sha256:d709ded6fd6396ad98fde9a014f82606ee2e2baf3b8f4c3f2af367a1ea660ef1 - 5.16% (12.9 MB)

[#010] sha256:0e1c126c9681145d230e3f3b4851d8cb65027cf7538a23ff4be50578fcd5d5d0 - 0.0% (2.4 KB)

[#011] sha256:32a7ff29c43663046c1302f635d4b69f3bf797632885623f9ca0b539a2891a96 - 0.0% (250 Bytes)

[#012] sha256:5de099736a113317780ce6410f243907e5a5ec0bf4ec99f3406c3bb9d92868f3 - 0.0% (244 Bytes)

[#013] sha256:2b846626fbcb1bf54d575e375b7a000a5f9a188cec6b0a5db504df231f731f96 - 0.0% (890 Bytes)

[#014] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#015] sha256:3f7942a50d0d56ee2f6dfda1fb08b37f02ddfd91dcf4684e0f84186c650881aa - 6.26% (15.7 MB)

[#016] sha256:b8d3b6d0cddc4b18704a1a3fc3a2ecf144ee8a3ea5c126ae03cefbde6f583fd8 - 22.97% (57.5 MB)

[#017] sha256:88e4ecc27496fc636bed08e6e0ce1cf91729a51d03bef7ccb09c5ea3adf30b97 - 0.3% (759 KB)

[#018] sha256:51142a8a98eb3d78eed76f1e9e5acd0b1a9220a6c7ffbfa1dc56fabb86409ccf - 0.01% (22.2 KB)

[#019] sha256:255010db63026dfd3e8cb4efbcf6a51f1378fdf136f8ae625baa476b9cbc3aaf - 0.0% (366 Bytes)

[#020] sha256:82bc62aa026eccd53a9b561261e43f7d75ebc9210a8c56a0dd03deb0870e7b5e - 0.0% (2.79 KB)

[#021] sha256:122ff7bb892808f29a09db69db9de3605d064de96b604a25d40c2710af39d14e - 2.22% (5.56 MB)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'amd64' out/ 'trixie' '@1773619200'

2026-03-16 22:25:43 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; { echo 'Package: php*'; echo 'Pin: release *'; echo 'Pin-Priority: -1'; } > /etc/apt/preferences.d/no-debian-php # buildkit

2026-03-16 22:26:00 UTC (buildkit.dockerfile.v0)

ENV PHPIZE_DEPS=autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

2026-03-16 22:26:00 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends $PHPIZE_DEPS ca-certificates curl xz-utils ; apt-get dist-clean # buildkit

2026-03-16 22:26:00 UTC (buildkit.dockerfile.v0)

ENV PHP_INI_DIR=/usr/local/etc/php

2026-03-16 22:26:00 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR/conf.d"; [ ! -d /var/www/html ]; mkdir -p /var/www/html; chown www-data:www-data /var/www/html; chmod 1777 /var/www/html # buildkit

2026-03-16 22:26:00 UTC (buildkit.dockerfile.v0)

ENV APACHE_CONFDIR=/etc/apache2

2026-03-16 22:26:00 UTC (buildkit.dockerfile.v0)

ENV APACHE_ENVVARS=/etc/apache2/envvars

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends apache2; apt-get dist-clean; sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; . "$APACHE_ENVVARS"; for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR" "$APACHE_RUN_DIR/socks" ; do rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; chmod 1777 "$dir"; done; rm -rvf /var/www/html/*; ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" # buildkit

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c a2dismod mpm_event && a2enmod mpm_prefork # buildkit

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c { echo '<FilesMatch \.php$>'; echo '\tSetHandler application/x-httpd-php'; echo '</FilesMatch>'; echo; echo 'DirectoryIndex disabled'; echo 'DirectoryIndex index.php index.html'; echo; echo '<Directory /var/www/>'; echo '\tOptions -Indexes'; echo '\tAllowOverride All'; echo '</Directory>'; } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" && a2enconf docker-php # buildkit

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

ENV PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

ENV PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

ENV PHP_LDFLAGS=-Wl,-O1 -pie

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

ENV GPG_KEYS=AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

ENV PHP_VERSION=8.4.19

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

ENV PHP_URL=https://www.php.net/distributions/php-8.4.19.tar.xz PHP_ASC_URL=https://www.php.net/distributions/php-8.4.19.tar.xz.asc

2026-03-16 22:26:07 UTC (buildkit.dockerfile.v0)

ENV PHP_SHA256=11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

2026-03-16 22:26:17 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg; apt-get dist-clean; mkdir -p /usr/src; cd /usr/src; curl -fsSL -o php.tar.xz "$PHP_URL"; if [ -n "$PHP_SHA256" ]; then echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; fi; curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify php.tar.xz.asc php.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME"; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false # buildkit

2026-03-16 22:26:17 UTC (buildkit.dockerfile.v0)

COPY docker-php-source /usr/local/bin/ # buildkit

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends apache2-dev libargon2-dev libcurl4-openssl-dev libonig-dev libreadline-dev libsodium-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev ; export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" PHP_BUILD_PROVIDER='https://github.com/docker-library/php' PHP_UNAME='Linux - Docker' ; docker-php-source extract; cd /usr/src/php; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; if [ ! -d /usr/include/curl ]; then ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; fi; test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; ./configure --build="$gnuArch" --sysconfdir="${PHP_INI_DIR%/php}" --with-config-file-path="$PHP_INI_DIR" --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" --enable-option-checking=fatal --with-mhash --with-pic --enable-mbstring --enable-mysqlnd --with-password-argon2 --with-sodium=shared --with-pdo-sqlite=/usr --with-sqlite3=/usr --with-curl --with-iconv --with-openssl --with-readline --with-zlib --disable-phpdbg --with-pear --with-libdir="lib/$debMultiarch" --disable-cgi --with-apxs2 ; make -j "$(nproc)"; find -type f -name '*.a' -delete; make install; find /usr/local -type f -perm '/0111' -exec sh -euxc ' strip --strip-all "$@" || : ' -- '{}' + ; make clean; cp -v php.ini-* "$PHP_INI_DIR/"; cd /; docker-php-source delete; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; pecl update-channels; rm -rf /tmp/pear ~/.pearrc; php --version # buildkit

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ # buildkit

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable opcache # buildkit

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable sodium # buildkit

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-php-entrypoint"]

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

STOPSIGNAL SIGWINCH

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

COPY apache2-foreground /usr/local/bin/ # buildkit

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

WORKDIR /var/www/html

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

EXPOSE map[80/tcp:{}]

2026-03-16 22:28:52 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

2026-03-23 04:39:19 UTC (buildkit.dockerfile.v0)

LABEL maintainer=Thomas Bruederli <[email protected]>

2026-03-23 04:39:19 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/roundcube/roundcubemail-docker

2026-03-23 04:39:19 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get -y upgrade && apt-get clean # buildkit

2026-03-23 04:41:38 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; if [ "apache" = "apache" ]; then a2enmod rewrite; sed -i -e 's|\(DocumentRoot /var/www/html\)$|\1/public_html|' /etc/apache2/sites-available/000-default.conf; fi; apt-get update; savedAptMark="$(apt-mark showmanual)"; apt-get install -y --no-install-recommends libfreetype6-dev libicu-dev libjpeg62-turbo-dev libldap2-dev libsasl2-dev libmagickwand-dev libpng-dev libpq-dev libsqlite3-dev libzip-dev libpspell-dev libonig-dev libldap-common ; fetchDeps="gnupg locales libc-l10n"; installDeps="aspell aspell-en rsync unzip"; apt-get install -y --no-install-recommends $installDeps $fetchDeps ; pecl bundle -d /usr/src/php/ext imagick; pecl bundle -d /usr/src/php/ext redis; pecl bundle -d /usr/src/php/ext pspell; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; docker-php-ext-configure gd --with-jpeg --with-freetype; docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch" --with-ldap-sasl; docker-php-ext-install exif gd intl ldap pdo_mysql pdo_pgsql pdo_sqlite zip pspell imagick redis ; docker-php-ext-enable imagick opcache redis; docker-php-source delete; rm -r /tmp/pear; php -m; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark $installDeps $fetchDeps; extdir="$(php -r 'echo ini_get("extension_dir");')"; ldd "$extdir"/*.so | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query -S | cut -d: -f1 | sort -u | xargs -rt apt-mark manual; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); err="$(php --version 3>&1 1>&2 2>&3)"; [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); curl -fL https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh -o /wait-for-it.sh; chmod +x /wait-for-it.sh; # buildkit

2026-03-23 04:41:38 UTC (buildkit.dockerfile.v0)

COPY /usr/bin/composer /usr/bin/composer # buildkit

2026-03-23 04:41:38 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # buildkit

2026-03-23 04:41:38 UTC (buildkit.dockerfile.v0)

COPY php.ini /usr/local/etc/php/conf.d/roundcube-defaults.ini # buildkit

2026-03-23 04:41:38 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker-entrypoint.sh / # buildkit

2026-03-23 04:41:38 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_VERSION=1.6.14

2026-03-23 04:41:38 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_KEYID=F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

2026-03-23 04:41:40 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; curl -o roundcubemail.tar.gz -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz; curl -o roundcubemail.tar.gz.asc -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz.asc; export GNUPGHOME="$(mktemp -d)"; curl -fSL https://roundcube.net/download/pubkey.asc -o /tmp/pubkey.asc; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o 'Key fingerprint') != 1 ]; then echo 'The key file should contain only one GPG key'; exit 1; fi; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o "${ROUNDCUBEMAIL_KEYID}") != 1 ]; then echo 'The key ID should be the roundcube one'; exit 1; fi; gpg --batch --import /tmp/pubkey.asc; rm /tmp/pubkey.asc; gpg --batch --verify roundcubemail.tar.gz.asc roundcubemail.tar.gz; gpgconf --kill all; mkdir /usr/src/roundcubemail; tar -xf roundcubemail.tar.gz -C /usr/src/roundcubemail --strip-components=1 --no-same-owner; rm -r "$GNUPGHOME" roundcubemail.tar.gz.asc roundcubemail.tar.gz; rm -rf /usr/src/roundcubemail/installer; chown -R www-data:www-data /usr/src/roundcubemail/logs; mkdir -p /var/roundcube/config /var/roundcube/enigma; chown -R www-data:www-data /var/roundcube; chmod +t /var/roundcube # buildkit

2026-03-23 04:41:40 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/docker-entrypoint.sh"]

2026-03-23 04:41:40 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

Details
Created

2026-03-23 05:43:51 UTC

Size

223 MB

Content Digest
Labels
  • maintainer
    Thomas Bruederli <[email protected]>
  • org.opencontainers.image.source
    https://github.com/roundcube/roundcubemail-docker

Environment
APACHE_CONFDIR

/etc/apache2

APACHE_ENVVARS

/etc/apache2/envvars

GPG_KEYS

AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PHPIZE_DEPS

autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

PHP_ASC_URL

https://www.php.net/distributions/php-8.4.19.tar.xz.asc

PHP_CFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_CPPFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_INI_DIR

/usr/local/etc/php

PHP_LDFLAGS

-Wl,-O1 -pie

PHP_SHA256

11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

PHP_URL

https://www.php.net/distributions/php-8.4.19.tar.xz

PHP_VERSION

8.4.19

ROUNDCUBEMAIL_KEYID

F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

ROUNDCUBEMAIL_VERSION

1.6.14


Layers

[#000] sha256:eb1defba38d0de4655b895d4763345b3ab078983d3385db43c308a7caca13f2a - 11.97% (26.6 MB)

[#001] sha256:67109b30418fade3cc247e45c3ed938e25be0887dc5b7ec9711757e13eb729f6 - 0.0% (223 Bytes)

[#002] sha256:d1a3c18230f4eb7ef08a545aad6852c10d8471e14a4d66cfdea78863ade20f5c - 40.66% (90.5 MB)

[#003] sha256:b79f024949353510a8bb767480fa0e00918e2116ae0cbcd9ef7117e3f35ca10f - 0.0% (224 Bytes)

[#004] sha256:b95918568d6a043fdeb21fe4caab0d5d4e6383b1233d89cc8a720a82d90197e6 - 1.75% (3.9 MB)

[#005] sha256:1ccff2a11f3e16df4d07a3d5b2e8584315bbfc529d08f19a9acdbbc253879078 - 0.0% (431 Bytes)

[#006] sha256:e709747290ba4771fb01f6a957f6342888ddfe71a7aee53369b52cb60b285b02 - 0.0% (486 Bytes)

[#007] sha256:cecf4f06bc3fd23c727fc80713468e52fd317bdef8d1eb4d4b3b26d0ea4d8df9 - 5.93% (13.2 MB)

[#008] sha256:7dbf18c8904c334000d47568babbcfc5879a8b2ef96a203857d59105baf4099d - 0.0% (486 Bytes)

[#009] sha256:3fb3371846b4e5a4766532de414d41bc16d848080e847eb6e83206784533646c - 5.23% (11.6 MB)

[#010] sha256:e547ac1ecfb3e2dcfb73c9226425506ac8bbce3003d2cffb9125dc256f73aca5 - 0.0% (2.4 KB)

[#011] sha256:59a90199b7ffb31284df8a9c06be7f4d882b915148a667ed9ebb7e385304bd94 - 0.0% (251 Bytes)

[#012] sha256:7a6751ae3fa6ec3236a857f260457f6ccb77ec34da3e4c107a6c180ba57db683 - 0.0% (244 Bytes)

[#013] sha256:8e072ff14618f007129f185c50f1e84f0fec039f9bb76853ed9ff4638c62e848 - 0.0% (889 Bytes)

[#014] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#015] sha256:85c0667fd031f1b2a2a9beeb6c10d1683cf74f69dcd3b0f0cecd5494ba2ba525 - 6.92% (15.4 MB)

[#016] sha256:d9fe072ed561c5b66c713d2b19aaf18d68770035782d6691cb56af0a83b9bf92 - 24.69% (55 MB)

[#017] sha256:1bce9291ea115b32cde7b666a82e2aac7d7116eba7644ab800ceed2943269d5f - 0.33% (759 KB)

[#018] sha256:5177f3457acfa523aa095e05afd1e1826baf50bfc4b88384275fbc22f575a7b8 - 0.01% (22.2 KB)

[#019] sha256:440ecf2bb672d991f7633125b46f85e5ce5913673506cf62c945044028b1c40b - 0.0% (365 Bytes)

[#020] sha256:82bc62aa026eccd53a9b561261e43f7d75ebc9210a8c56a0dd03deb0870e7b5e - 0.0% (2.79 KB)

[#021] sha256:364339b3ba87734b83b41bc7db5d48a76109804955c61cbcad632042abe580cf - 2.5% (5.56 MB)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'armel' out/ 'trixie' '@1773619200'

2026-03-16 22:21:01 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; { echo 'Package: php*'; echo 'Pin: release *'; echo 'Pin-Priority: -1'; } > /etc/apt/preferences.d/no-debian-php # buildkit

2026-03-16 22:21:24 UTC (buildkit.dockerfile.v0)

ENV PHPIZE_DEPS=autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

2026-03-16 22:21:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends $PHPIZE_DEPS ca-certificates curl xz-utils ; apt-get dist-clean # buildkit

2026-03-16 22:21:24 UTC (buildkit.dockerfile.v0)

ENV PHP_INI_DIR=/usr/local/etc/php

2026-03-16 22:21:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR/conf.d"; [ ! -d /var/www/html ]; mkdir -p /var/www/html; chown www-data:www-data /var/www/html; chmod 1777 /var/www/html # buildkit

2026-03-16 22:21:24 UTC (buildkit.dockerfile.v0)

ENV APACHE_CONFDIR=/etc/apache2

2026-03-16 22:21:24 UTC (buildkit.dockerfile.v0)

ENV APACHE_ENVVARS=/etc/apache2/envvars

2026-03-16 22:29:00 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends apache2; apt-get dist-clean; sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; . "$APACHE_ENVVARS"; for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR" "$APACHE_RUN_DIR/socks" ; do rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; chmod 1777 "$dir"; done; rm -rvf /var/www/html/*; ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" # buildkit

2026-03-16 22:29:00 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c a2dismod mpm_event && a2enmod mpm_prefork # buildkit

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c { echo '<FilesMatch \.php$>'; echo '\tSetHandler application/x-httpd-php'; echo '</FilesMatch>'; echo; echo 'DirectoryIndex disabled'; echo 'DirectoryIndex index.php index.html'; echo; echo '<Directory /var/www/>'; echo '\tOptions -Indexes'; echo '\tAllowOverride All'; echo '</Directory>'; } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" && a2enconf docker-php # buildkit

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

ENV PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

ENV PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

ENV PHP_LDFLAGS=-Wl,-O1 -pie

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

ENV GPG_KEYS=AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

ENV PHP_VERSION=8.4.19

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

ENV PHP_URL=https://www.php.net/distributions/php-8.4.19.tar.xz PHP_ASC_URL=https://www.php.net/distributions/php-8.4.19.tar.xz.asc

2026-03-16 22:29:01 UTC (buildkit.dockerfile.v0)

ENV PHP_SHA256=11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg; apt-get dist-clean; mkdir -p /usr/src; cd /usr/src; curl -fsSL -o php.tar.xz "$PHP_URL"; if [ -n "$PHP_SHA256" ]; then echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; fi; curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify php.tar.xz.asc php.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME"; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false # buildkit

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

COPY docker-php-source /usr/local/bin/ # buildkit

2026-03-16 22:32:22 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends apache2-dev libargon2-dev libcurl4-openssl-dev libonig-dev libreadline-dev libsodium-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev ; export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" PHP_BUILD_PROVIDER='https://github.com/docker-library/php' PHP_UNAME='Linux - Docker' ; docker-php-source extract; cd /usr/src/php; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; if [ ! -d /usr/include/curl ]; then ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; fi; test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; ./configure --build="$gnuArch" --sysconfdir="${PHP_INI_DIR%/php}" --with-config-file-path="$PHP_INI_DIR" --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" --enable-option-checking=fatal --with-mhash --with-pic --enable-mbstring --enable-mysqlnd --with-password-argon2 --with-sodium=shared --with-pdo-sqlite=/usr --with-sqlite3=/usr --with-curl --with-iconv --with-openssl --with-readline --with-zlib --disable-phpdbg --with-pear --with-libdir="lib/$debMultiarch" --disable-cgi --with-apxs2 ; make -j "$(nproc)"; find -type f -name '*.a' -delete; make install; find /usr/local -type f -perm '/0111' -exec sh -euxc ' strip --strip-all "$@" || : ' -- '{}' + ; make clean; cp -v php.ini-* "$PHP_INI_DIR/"; cd /; docker-php-source delete; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; pecl update-channels; rm -rf /tmp/pear ~/.pearrc; php --version # buildkit

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ # buildkit

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable opcache # buildkit

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable sodium # buildkit

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-php-entrypoint"]

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

STOPSIGNAL SIGWINCH

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

COPY apache2-foreground /usr/local/bin/ # buildkit

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

WORKDIR /var/www/html

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

EXPOSE map[80/tcp:{}]

2026-03-16 22:32:23 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

2026-03-23 04:43:33 UTC (buildkit.dockerfile.v0)

LABEL maintainer=Thomas Bruederli <[email protected]>

2026-03-23 04:43:33 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/roundcube/roundcubemail-docker

2026-03-23 04:43:33 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get -y upgrade && apt-get clean # buildkit

2026-03-23 05:43:46 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; if [ "apache" = "apache" ]; then a2enmod rewrite; sed -i -e 's|\(DocumentRoot /var/www/html\)$|\1/public_html|' /etc/apache2/sites-available/000-default.conf; fi; apt-get update; savedAptMark="$(apt-mark showmanual)"; apt-get install -y --no-install-recommends libfreetype6-dev libicu-dev libjpeg62-turbo-dev libldap2-dev libsasl2-dev libmagickwand-dev libpng-dev libpq-dev libsqlite3-dev libzip-dev libpspell-dev libonig-dev libldap-common ; fetchDeps="gnupg locales libc-l10n"; installDeps="aspell aspell-en rsync unzip"; apt-get install -y --no-install-recommends $installDeps $fetchDeps ; pecl bundle -d /usr/src/php/ext imagick; pecl bundle -d /usr/src/php/ext redis; pecl bundle -d /usr/src/php/ext pspell; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; docker-php-ext-configure gd --with-jpeg --with-freetype; docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch" --with-ldap-sasl; docker-php-ext-install exif gd intl ldap pdo_mysql pdo_pgsql pdo_sqlite zip pspell imagick redis ; docker-php-ext-enable imagick opcache redis; docker-php-source delete; rm -r /tmp/pear; php -m; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark $installDeps $fetchDeps; extdir="$(php -r 'echo ini_get("extension_dir");')"; ldd "$extdir"/*.so | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query -S | cut -d: -f1 | sort -u | xargs -rt apt-mark manual; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); err="$(php --version 3>&1 1>&2 2>&3)"; [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); curl -fL https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh -o /wait-for-it.sh; chmod +x /wait-for-it.sh; # buildkit

2026-03-23 05:43:46 UTC (buildkit.dockerfile.v0)

COPY /usr/bin/composer /usr/bin/composer # buildkit

2026-03-23 05:43:46 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # buildkit

2026-03-23 05:43:46 UTC (buildkit.dockerfile.v0)

COPY php.ini /usr/local/etc/php/conf.d/roundcube-defaults.ini # buildkit

2026-03-23 05:43:46 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker-entrypoint.sh / # buildkit

2026-03-23 05:43:46 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_VERSION=1.6.14

2026-03-23 05:43:46 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_KEYID=F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

2026-03-23 05:43:51 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; curl -o roundcubemail.tar.gz -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz; curl -o roundcubemail.tar.gz.asc -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz.asc; export GNUPGHOME="$(mktemp -d)"; curl -fSL https://roundcube.net/download/pubkey.asc -o /tmp/pubkey.asc; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o 'Key fingerprint') != 1 ]; then echo 'The key file should contain only one GPG key'; exit 1; fi; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o "${ROUNDCUBEMAIL_KEYID}") != 1 ]; then echo 'The key ID should be the roundcube one'; exit 1; fi; gpg --batch --import /tmp/pubkey.asc; rm /tmp/pubkey.asc; gpg --batch --verify roundcubemail.tar.gz.asc roundcubemail.tar.gz; gpgconf --kill all; mkdir /usr/src/roundcubemail; tar -xf roundcubemail.tar.gz -C /usr/src/roundcubemail --strip-components=1 --no-same-owner; rm -r "$GNUPGHOME" roundcubemail.tar.gz.asc roundcubemail.tar.gz; rm -rf /usr/src/roundcubemail/installer; chown -R www-data:www-data /usr/src/roundcubemail/logs; mkdir -p /var/roundcube/config /var/roundcube/enigma; chown -R www-data:www-data /var/roundcube; chmod +t /var/roundcube # buildkit

2026-03-23 05:43:51 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/docker-entrypoint.sh"]

2026-03-23 05:43:51 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

Details
Created

2026-03-23 05:42:01 UTC

Size

210 MB

Content Digest
Labels
  • maintainer
    Thomas Bruederli <[email protected]>
  • org.opencontainers.image.source
    https://github.com/roundcube/roundcubemail-docker

Environment
APACHE_CONFDIR

/etc/apache2

APACHE_ENVVARS

/etc/apache2/envvars

GPG_KEYS

AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PHPIZE_DEPS

autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

PHP_ASC_URL

https://www.php.net/distributions/php-8.4.19.tar.xz.asc

PHP_CFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_CPPFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_INI_DIR

/usr/local/etc/php

PHP_LDFLAGS

-Wl,-O1 -pie

PHP_SHA256

11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

PHP_URL

https://www.php.net/distributions/php-8.4.19.tar.xz

PHP_VERSION

8.4.19

ROUNDCUBEMAIL_KEYID

F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

ROUNDCUBEMAIL_VERSION

1.6.14


Layers

[#000] sha256:7d73604d2a042e7beeb809f68c76f5be3576747809bfaa49747f334227d8d250 - 11.91% (25 MB)

[#001] sha256:52005a9b7be6f589fd8a6a8aa9880d48924b60fe8d9ef395edcbcd9b0397dffa - 0.0% (225 Bytes)

[#002] sha256:35c5a91705e7e760197d1ecb55be0d30a57ad739ffd71ff515a3f27ba601daa3 - 39.19% (82.3 MB)

[#003] sha256:fae2b2926da00edae0ca01087d28b41170d58dc99d4ce424d3f71db975d7d64d - 0.0% (225 Bytes)

[#004] sha256:55dbbcdb587070615a3759ea035718cc8bc3234dcba36c051448a8c8d866b8ae - 1.71% (3.58 MB)

[#005] sha256:bd2037c32d0b818fd59bd3e3d857074fef8aad99e66ec8e760270e69a38ccb70 - 0.0% (432 Bytes)

[#006] sha256:5b855a8a85b2b89f33d4181e304c2ca42130dfc63ba856b007a10dc1a3fff0d8 - 0.0% (482 Bytes)

[#007] sha256:f644f3e8126cd81f56240b878e8f500a3f3cf2c2575a2ce383243c98bcea604e - 6.29% (13.2 MB)

[#008] sha256:76a7b756fa4b2e79e65661d8179ddb14495968d4e7b7915c6d85b022836ca325 - 0.0% (488 Bytes)

[#009] sha256:b5df8e6aff2f7a9cd1e21ce99df17969326187c959f17fad45e10f52083d3317 - 5.28% (11.1 MB)

[#010] sha256:38b9b917af65be91de013ac1543218fea4bb29b418c3ffea35feb5315f6f34c5 - 0.0% (2.4 KB)

[#011] sha256:93755a3b843601dcebedad67406d2222e40bb9cba80aef289bb569d4e5b0ad64 - 0.0% (249 Bytes)

[#012] sha256:0876ca161556988c73763d4ad0d8c9acf27efeb2265b42e54a3928336002c685 - 0.0% (243 Bytes)

[#013] sha256:e6b073eb23e4e5fca812d8c6308d0e5243a9586d72c39cb2102157289236dfa3 - 0.0% (891 Bytes)

[#014] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#015] sha256:5dbc38575c2750b8d63c9c3c7cecd9e22c71249c4827ddd1115f4505dd6ecaea - 7.4% (15.5 MB)

[#016] sha256:bdbf3655d17dbae045cac32b58358ba050fae81c526e2701cbeab7a940238314 - 25.2% (52.9 MB)

[#017] sha256:c8d563e0490d330ee17be885e8cb74141b44f4477c269fcd7f6c401b62cff578 - 0.35% (759 KB)

[#018] sha256:a63c7f1058b830586567a62385dcf9dc057441da7e606e49050d2f6827807eaa - 0.01% (22.2 KB)

[#019] sha256:74d5ff37c4ad3b62a6433416eb0a236c280b342a6d991b883fa2ea8260d78118 - 0.0% (365 Bytes)

[#020] sha256:82bc62aa026eccd53a9b561261e43f7d75ebc9210a8c56a0dd03deb0870e7b5e - 0.0% (2.79 KB)

[#021] sha256:9b015b01b846eeb6125deb5cc59e232b924eaf0cf0fbb40982e740570c523152 - 2.65% (5.56 MB)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'armhf' out/ 'trixie' '@1773619200'

2026-03-16 22:32:00 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; { echo 'Package: php*'; echo 'Pin: release *'; echo 'Pin-Priority: -1'; } > /etc/apt/preferences.d/no-debian-php # buildkit

2026-03-16 22:32:17 UTC (buildkit.dockerfile.v0)

ENV PHPIZE_DEPS=autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

2026-03-16 22:32:17 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends $PHPIZE_DEPS ca-certificates curl xz-utils ; apt-get dist-clean # buildkit

2026-03-16 22:32:17 UTC (buildkit.dockerfile.v0)

ENV PHP_INI_DIR=/usr/local/etc/php

2026-03-16 22:32:17 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR/conf.d"; [ ! -d /var/www/html ]; mkdir -p /var/www/html; chown www-data:www-data /var/www/html; chmod 1777 /var/www/html # buildkit

2026-03-16 22:32:17 UTC (buildkit.dockerfile.v0)

ENV APACHE_CONFDIR=/etc/apache2

2026-03-16 22:32:17 UTC (buildkit.dockerfile.v0)

ENV APACHE_ENVVARS=/etc/apache2/envvars

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends apache2; apt-get dist-clean; sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; . "$APACHE_ENVVARS"; for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR" "$APACHE_RUN_DIR/socks" ; do rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; chmod 1777 "$dir"; done; rm -rvf /var/www/html/*; ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" # buildkit

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c a2dismod mpm_event && a2enmod mpm_prefork # buildkit

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c { echo '<FilesMatch \.php$>'; echo '\tSetHandler application/x-httpd-php'; echo '</FilesMatch>'; echo; echo 'DirectoryIndex disabled'; echo 'DirectoryIndex index.php index.html'; echo; echo '<Directory /var/www/>'; echo '\tOptions -Indexes'; echo '\tAllowOverride All'; echo '</Directory>'; } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" && a2enconf docker-php # buildkit

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

ENV PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

ENV PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

ENV PHP_LDFLAGS=-Wl,-O1 -pie

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

ENV GPG_KEYS=AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

ENV PHP_VERSION=8.4.19

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

ENV PHP_URL=https://www.php.net/distributions/php-8.4.19.tar.xz PHP_ASC_URL=https://www.php.net/distributions/php-8.4.19.tar.xz.asc

2026-03-16 22:32:24 UTC (buildkit.dockerfile.v0)

ENV PHP_SHA256=11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

2026-03-16 22:32:35 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg; apt-get dist-clean; mkdir -p /usr/src; cd /usr/src; curl -fsSL -o php.tar.xz "$PHP_URL"; if [ -n "$PHP_SHA256" ]; then echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; fi; curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify php.tar.xz.asc php.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME"; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false # buildkit

2026-03-16 22:32:35 UTC (buildkit.dockerfile.v0)

COPY docker-php-source /usr/local/bin/ # buildkit

2026-03-16 22:35:19 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends apache2-dev libargon2-dev libcurl4-openssl-dev libonig-dev libreadline-dev libsodium-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev ; export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" PHP_BUILD_PROVIDER='https://github.com/docker-library/php' PHP_UNAME='Linux - Docker' ; docker-php-source extract; cd /usr/src/php; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; if [ ! -d /usr/include/curl ]; then ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; fi; test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; ./configure --build="$gnuArch" --sysconfdir="${PHP_INI_DIR%/php}" --with-config-file-path="$PHP_INI_DIR" --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" --enable-option-checking=fatal --with-mhash --with-pic --enable-mbstring --enable-mysqlnd --with-password-argon2 --with-sodium=shared --with-pdo-sqlite=/usr --with-sqlite3=/usr --with-curl --with-iconv --with-openssl --with-readline --with-zlib --disable-phpdbg --with-pear --with-libdir="lib/$debMultiarch" --disable-cgi --with-apxs2 ; make -j "$(nproc)"; find -type f -name '*.a' -delete; make install; find /usr/local -type f -perm '/0111' -exec sh -euxc ' strip --strip-all "$@" || : ' -- '{}' + ; make clean; cp -v php.ini-* "$PHP_INI_DIR/"; cd /; docker-php-source delete; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; pecl update-channels; rm -rf /tmp/pear ~/.pearrc; php --version # buildkit

2026-03-16 22:35:19 UTC (buildkit.dockerfile.v0)

COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ # buildkit

2026-03-16 22:35:19 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable opcache # buildkit

2026-03-16 22:35:19 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable sodium # buildkit

2026-03-16 22:35:19 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-php-entrypoint"]

2026-03-16 22:35:19 UTC (buildkit.dockerfile.v0)

STOPSIGNAL SIGWINCH

2026-03-16 22:35:20 UTC (buildkit.dockerfile.v0)

COPY apache2-foreground /usr/local/bin/ # buildkit

2026-03-16 22:35:20 UTC (buildkit.dockerfile.v0)

WORKDIR /var/www/html

2026-03-16 22:35:20 UTC (buildkit.dockerfile.v0)

EXPOSE map[80/tcp:{}]

2026-03-16 22:35:20 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

2026-03-23 04:43:19 UTC (buildkit.dockerfile.v0)

LABEL maintainer=Thomas Bruederli <[email protected]>

2026-03-23 04:43:19 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/roundcube/roundcubemail-docker

2026-03-23 04:43:19 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get -y upgrade && apt-get clean # buildkit

2026-03-23 05:41:54 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; if [ "apache" = "apache" ]; then a2enmod rewrite; sed -i -e 's|\(DocumentRoot /var/www/html\)$|\1/public_html|' /etc/apache2/sites-available/000-default.conf; fi; apt-get update; savedAptMark="$(apt-mark showmanual)"; apt-get install -y --no-install-recommends libfreetype6-dev libicu-dev libjpeg62-turbo-dev libldap2-dev libsasl2-dev libmagickwand-dev libpng-dev libpq-dev libsqlite3-dev libzip-dev libpspell-dev libonig-dev libldap-common ; fetchDeps="gnupg locales libc-l10n"; installDeps="aspell aspell-en rsync unzip"; apt-get install -y --no-install-recommends $installDeps $fetchDeps ; pecl bundle -d /usr/src/php/ext imagick; pecl bundle -d /usr/src/php/ext redis; pecl bundle -d /usr/src/php/ext pspell; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; docker-php-ext-configure gd --with-jpeg --with-freetype; docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch" --with-ldap-sasl; docker-php-ext-install exif gd intl ldap pdo_mysql pdo_pgsql pdo_sqlite zip pspell imagick redis ; docker-php-ext-enable imagick opcache redis; docker-php-source delete; rm -r /tmp/pear; php -m; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark $installDeps $fetchDeps; extdir="$(php -r 'echo ini_get("extension_dir");')"; ldd "$extdir"/*.so | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query -S | cut -d: -f1 | sort -u | xargs -rt apt-mark manual; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); err="$(php --version 3>&1 1>&2 2>&3)"; [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); curl -fL https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh -o /wait-for-it.sh; chmod +x /wait-for-it.sh; # buildkit

2026-03-23 05:41:54 UTC (buildkit.dockerfile.v0)

COPY /usr/bin/composer /usr/bin/composer # buildkit

2026-03-23 05:41:54 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # buildkit

2026-03-23 05:41:54 UTC (buildkit.dockerfile.v0)

COPY php.ini /usr/local/etc/php/conf.d/roundcube-defaults.ini # buildkit

2026-03-23 05:41:54 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker-entrypoint.sh / # buildkit

2026-03-23 05:41:54 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_VERSION=1.6.14

2026-03-23 05:41:54 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_KEYID=F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

2026-03-23 05:42:01 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; curl -o roundcubemail.tar.gz -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz; curl -o roundcubemail.tar.gz.asc -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz.asc; export GNUPGHOME="$(mktemp -d)"; curl -fSL https://roundcube.net/download/pubkey.asc -o /tmp/pubkey.asc; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o 'Key fingerprint') != 1 ]; then echo 'The key file should contain only one GPG key'; exit 1; fi; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o "${ROUNDCUBEMAIL_KEYID}") != 1 ]; then echo 'The key ID should be the roundcube one'; exit 1; fi; gpg --batch --import /tmp/pubkey.asc; rm /tmp/pubkey.asc; gpg --batch --verify roundcubemail.tar.gz.asc roundcubemail.tar.gz; gpgconf --kill all; mkdir /usr/src/roundcubemail; tar -xf roundcubemail.tar.gz -C /usr/src/roundcubemail --strip-components=1 --no-same-owner; rm -r "$GNUPGHOME" roundcubemail.tar.gz.asc roundcubemail.tar.gz; rm -rf /usr/src/roundcubemail/installer; chown -R www-data:www-data /usr/src/roundcubemail/logs; mkdir -p /var/roundcube/config /var/roundcube/enigma; chown -R www-data:www-data /var/roundcube; chmod +t /var/roundcube # buildkit

2026-03-23 05:42:01 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/docker-entrypoint.sh"]

2026-03-23 05:42:01 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

Details
Created

2026-03-23 05:46:58 UTC

Size

242 MB

Content Digest
Labels
  • maintainer
    Thomas Bruederli <[email protected]>
  • org.opencontainers.image.source
    https://github.com/roundcube/roundcubemail-docker

Environment
APACHE_CONFDIR

/etc/apache2

APACHE_ENVVARS

/etc/apache2/envvars

GPG_KEYS

AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PHPIZE_DEPS

autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

PHP_ASC_URL

https://www.php.net/distributions/php-8.4.19.tar.xz.asc

PHP_CFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_CPPFLAGS

-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

PHP_INI_DIR

/usr/local/etc/php

PHP_LDFLAGS

-Wl,-O1 -pie

PHP_SHA256

11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

PHP_URL

https://www.php.net/distributions/php-8.4.19.tar.xz

PHP_VERSION

8.4.19

ROUNDCUBEMAIL_KEYID

F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

ROUNDCUBEMAIL_VERSION

1.6.14


Layers

[#000] sha256:f4badedbec24858ef2dc51256f6418328e305e9c3c5a5e093581f83425618bd5 - 11.88% (28.7 MB)

[#001] sha256:b66e667464959ab0c9b7fbabbcbf67c02e35a304ee9f7fa8ca9af8e9623e8ad2 - 0.0% (225 Bytes)

[#002] sha256:1d09e0ab81291b28d74d4722bc0394dddc1ce58d184b7a9bb77e0e3e0618fc3f - 43.42% (105 MB)

[#003] sha256:c81d9d9f9376ba4cead5c5f2d8a08e6df915677e5342b5f85842f2c507386610 - 0.0% (223 Bytes)

[#004] sha256:b47bf0f83120b779e9a904bc201f08730bfbc41fc08fa42311453ae7180547fd - 1.7% (4.11 MB)

[#005] sha256:fe981650dcca02e84c53e1eb33188c342a7e5b9406e1b1a0502eb96539128bf7 - 0.0% (425 Bytes)

[#006] sha256:e5e1cbcf8104accef6b5769a0425e32a42f7d2b748a90b20863c09e34675bccc - 0.0% (479 Bytes)

[#007] sha256:628ec4f46c2487ae39112d174c2b63961c352bf300f50c8921075e2624c96d2f - 5.46% (13.2 MB)

[#008] sha256:8b4b24d45afe1dc38b25497443beebe44ceec1801e5bb819e0dabee9c5a73397 - 0.0% (488 Bytes)

[#009] sha256:a35c455c44443cc16510daca6277d180dafe45082dc1f6ea2e72a58448b6c371 - 5.2% (12.6 MB)

[#010] sha256:d6898c33a6062611c3eedd025ea492db4f215d72c2ac97116ddc9148febd83f8 - 0.0% (2.4 KB)

[#011] sha256:50595d1980b5e13327746f4af734fe73d4a1dc52efa8292e335cd7805662dd58 - 0.0% (250 Bytes)

[#012] sha256:7bd451cb69f196507aa43def95fc731a21eb5db0ef494acbf7e0e4c6b3c4e82b - 0.0% (244 Bytes)

[#013] sha256:23aea6d22955931764ea31f788a988de28c5ff4cb0c201881ffa1844fe5626fa - 0.0% (890 Bytes)

[#014] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)

[#015] sha256:ee9e9387afb37049dc9a16ab4ba0d64835fe572b4e7f9ac1b06c75a3328c0cc4 - 6.44% (15.6 MB)

[#016] sha256:2c0c49b259d9f681f4ffe7e53c9ebce3ae67a23d945bb72f8108d61a869a8a2d - 23.29% (56.4 MB)

[#017] sha256:e98d722908c47a47d8b7f7125a8ac396f120789a2167ce623815d24f33908203 - 0.31% (759 KB)

[#018] sha256:ba4405ea60ebdbab0c4a0906335b3b940bbbcf64599ab7607d1cd92873a72ac1 - 0.01% (22.2 KB)

[#019] sha256:e12f8ea6c85a0b110f04b0aaca964b34442f0e288205af6924be93f33e879f85 - 0.0% (365 Bytes)

[#020] sha256:82bc62aa026eccd53a9b561261e43f7d75ebc9210a8c56a0dd03deb0870e7b5e - 0.0% (2.79 KB)

[#021] sha256:4301af65685827438623853a56f553cf794dd2d34ca69e88fbdb3707fce5dded - 2.3% (5.56 MB)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'arm64' out/ 'trixie' '@1773619200'

2026-03-16 22:25:36 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; { echo 'Package: php*'; echo 'Pin: release *'; echo 'Pin-Priority: -1'; } > /etc/apt/preferences.d/no-debian-php # buildkit

2026-03-16 22:25:53 UTC (buildkit.dockerfile.v0)

ENV PHPIZE_DEPS=autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c

2026-03-16 22:25:53 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends $PHPIZE_DEPS ca-certificates curl xz-utils ; apt-get dist-clean # buildkit

2026-03-16 22:25:53 UTC (buildkit.dockerfile.v0)

ENV PHP_INI_DIR=/usr/local/etc/php

2026-03-16 22:25:53 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; mkdir -p "$PHP_INI_DIR/conf.d"; [ ! -d /var/www/html ]; mkdir -p /var/www/html; chown www-data:www-data /var/www/html; chmod 1777 /var/www/html # buildkit

2026-03-16 22:25:53 UTC (buildkit.dockerfile.v0)

ENV APACHE_CONFDIR=/etc/apache2

2026-03-16 22:25:53 UTC (buildkit.dockerfile.v0)

ENV APACHE_ENVVARS=/etc/apache2/envvars

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends apache2; apt-get dist-clean; sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS"; . "$APACHE_ENVVARS"; for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR" "$APACHE_RUN_DIR/socks" ; do rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; chmod 1777 "$dir"; done; rm -rvf /var/www/html/*; ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log"; ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log"; chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c a2dismod mpm_event && a2enmod mpm_prefork # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c { echo '<FilesMatch \.php$>'; echo '\tSetHandler application/x-httpd-php'; echo '</FilesMatch>'; echo; echo 'DirectoryIndex disabled'; echo 'DirectoryIndex index.php index.html'; echo; echo '<Directory /var/www/>'; echo '\tOptions -Indexes'; echo '\tAllowOverride All'; echo '</Directory>'; } | tee "$APACHE_CONFDIR/conf-available/docker-php.conf" && a2enconf docker-php # buildkit

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENV PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENV PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENV PHP_LDFLAGS=-Wl,-O1 -pie

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENV GPG_KEYS=AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENV PHP_VERSION=8.4.19

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENV PHP_URL=https://www.php.net/distributions/php-8.4.19.tar.xz PHP_ASC_URL=https://www.php.net/distributions/php-8.4.19.tar.xz.asc

2026-03-16 22:25:59 UTC (buildkit.dockerfile.v0)

ENV PHP_SHA256=11f7164ab26d356c31f94d3d69cc0e0707d5d2d6494a221aaeae307c08eaaa1c

2026-03-16 22:26:09 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg; apt-get dist-clean; mkdir -p /usr/src; cd /usr/src; curl -fsSL -o php.tar.xz "$PHP_URL"; if [ -n "$PHP_SHA256" ]; then echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -; fi; curl -fsSL -o php.tar.xz.asc "$PHP_ASC_URL"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify php.tar.xz.asc php.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME"; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false # buildkit

2026-03-16 22:26:09 UTC (buildkit.dockerfile.v0)

COPY docker-php-source /usr/local/bin/ # buildkit

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends apache2-dev libargon2-dev libcurl4-openssl-dev libonig-dev libreadline-dev libsodium-dev libsqlite3-dev libssl-dev libxml2-dev zlib1g-dev ; export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" PHP_BUILD_PROVIDER='https://github.com/docker-library/php' PHP_UNAME='Linux - Docker' ; docker-php-source extract; cd /usr/src/php; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; if [ ! -d /usr/include/curl ]; then ln -sT "/usr/include/$debMultiarch/curl" /usr/local/include/curl; fi; test "$PHP_INI_DIR" != "${PHP_INI_DIR%/php}"; ./configure --build="$gnuArch" --sysconfdir="${PHP_INI_DIR%/php}" --with-config-file-path="$PHP_INI_DIR" --with-config-file-scan-dir="$PHP_INI_DIR/conf.d" --enable-option-checking=fatal --with-mhash --with-pic --enable-mbstring --enable-mysqlnd --with-password-argon2 --with-sodium=shared --with-pdo-sqlite=/usr --with-sqlite3=/usr --with-curl --with-iconv --with-openssl --with-readline --with-zlib --disable-phpdbg --with-pear --with-libdir="lib/$debMultiarch" --disable-cgi --with-apxs2 ; make -j "$(nproc)"; find -type f -name '*.a' -delete; make install; find /usr/local -type f -perm '/0111' -exec sh -euxc ' strip --strip-all "$@" || : ' -- '{}' + ; make clean; cp -v php.ini-* "$PHP_INI_DIR/"; cd /; docker-php-source delete; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; pecl update-channels; rm -rf /tmp/pear ~/.pearrc; php --version # buildkit

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

COPY docker-php-ext-* docker-php-entrypoint /usr/local/bin/ # buildkit

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable opcache # buildkit

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c docker-php-ext-enable sodium # buildkit

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-php-entrypoint"]

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

STOPSIGNAL SIGWINCH

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

COPY apache2-foreground /usr/local/bin/ # buildkit

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

WORKDIR /var/www/html

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

EXPOSE map[80/tcp:{}]

2026-03-16 22:29:14 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]

2026-03-23 04:43:18 UTC (buildkit.dockerfile.v0)

LABEL maintainer=Thomas Bruederli <[email protected]>

2026-03-23 04:43:18 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.source=https://github.com/roundcube/roundcubemail-docker

2026-03-23 04:43:18 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get -y upgrade && apt-get clean # buildkit

2026-03-23 05:46:53 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; if [ "apache" = "apache" ]; then a2enmod rewrite; sed -i -e 's|\(DocumentRoot /var/www/html\)$|\1/public_html|' /etc/apache2/sites-available/000-default.conf; fi; apt-get update; savedAptMark="$(apt-mark showmanual)"; apt-get install -y --no-install-recommends libfreetype6-dev libicu-dev libjpeg62-turbo-dev libldap2-dev libsasl2-dev libmagickwand-dev libpng-dev libpq-dev libsqlite3-dev libzip-dev libpspell-dev libonig-dev libldap-common ; fetchDeps="gnupg locales libc-l10n"; installDeps="aspell aspell-en rsync unzip"; apt-get install -y --no-install-recommends $installDeps $fetchDeps ; pecl bundle -d /usr/src/php/ext imagick; pecl bundle -d /usr/src/php/ext redis; pecl bundle -d /usr/src/php/ext pspell; debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; docker-php-ext-configure gd --with-jpeg --with-freetype; docker-php-ext-configure ldap --with-libdir="lib/$debMultiarch" --with-ldap-sasl; docker-php-ext-install exif gd intl ldap pdo_mysql pdo_pgsql pdo_sqlite zip pspell imagick redis ; docker-php-ext-enable imagick opcache redis; docker-php-source delete; rm -r /tmp/pear; php -m; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark $installDeps $fetchDeps; extdir="$(php -r 'echo ini_get("extension_dir");')"; ldd "$extdir"/*.so | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query -S | cut -d: -f1 | sort -u | xargs -rt apt-mark manual; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; ldd "$extdir"/*.so | grep -qzv "=> not found" || (echo "Sanity check failed: missing libraries:"; ldd "$extdir"/*.so | grep " => not found"; exit 1); ldd "$extdir"/*.so | grep -q "libzip.so.* => .*/libzip.so.*" || (echo "Sanity check failed: libzip.so is not referenced"; ldd "$extdir"/*.so; exit 1); err="$(php --version 3>&1 1>&2 2>&3)"; [ -z "$err" ] || (echo "Sanity check failed: php returned errors; $err"; exit 1;); curl -fL https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh -o /wait-for-it.sh; chmod +x /wait-for-it.sh; # buildkit

2026-03-23 05:46:54 UTC (buildkit.dockerfile.v0)

COPY /usr/bin/composer /usr/bin/composer # buildkit

2026-03-23 05:46:54 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" # buildkit

2026-03-23 05:46:54 UTC (buildkit.dockerfile.v0)

COPY php.ini /usr/local/etc/php/conf.d/roundcube-defaults.ini # buildkit

2026-03-23 05:46:54 UTC (buildkit.dockerfile.v0)

COPY --chmod=0755 docker-entrypoint.sh / # buildkit

2026-03-23 05:46:54 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_VERSION=1.6.14

2026-03-23 05:46:54 UTC (buildkit.dockerfile.v0)

ENV ROUNDCUBEMAIL_KEYID=F3E4 C04B B3DB 5D42 15C4 5F7F 5AB2 BAA1 41C4 F7D5

2026-03-23 05:46:58 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex; curl -o roundcubemail.tar.gz -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz; curl -o roundcubemail.tar.gz.asc -fSL https://github.com/roundcube/roundcubemail/releases/download/${ROUNDCUBEMAIL_VERSION}/roundcubemail-${ROUNDCUBEMAIL_VERSION}-complete.tar.gz.asc; export GNUPGHOME="$(mktemp -d)"; curl -fSL https://roundcube.net/download/pubkey.asc -o /tmp/pubkey.asc; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o 'Key fingerprint') != 1 ]; then echo 'The key file should contain only one GPG key'; exit 1; fi; LC_ALL=C.UTF-8 gpg -n --show-keys --with-fingerprint --keyid-format=long /tmp/pubkey.asc | if [ $(grep -c -o "${ROUNDCUBEMAIL_KEYID}") != 1 ]; then echo 'The key ID should be the roundcube one'; exit 1; fi; gpg --batch --import /tmp/pubkey.asc; rm /tmp/pubkey.asc; gpg --batch --verify roundcubemail.tar.gz.asc roundcubemail.tar.gz; gpgconf --kill all; mkdir /usr/src/roundcubemail; tar -xf roundcubemail.tar.gz -C /usr/src/roundcubemail --strip-components=1 --no-same-owner; rm -r "$GNUPGHOME" roundcubemail.tar.gz.asc roundcubemail.tar.gz; rm -rf /usr/src/roundcubemail/installer; chown -R www-data:www-data /usr/src/roundcubemail/logs; mkdir -p /var/roundcube/config /var/roundcube/enigma; chown -R www-data:www-data /var/roundcube; chmod +t /var/roundcube # buildkit

2026-03-23 05:46:58 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/docker-entrypoint.sh"]

2026-03-23 05:46:58 UTC (buildkit.dockerfile.v0)

CMD ["apache2-foreground"]