镜像构建历史
# 2025-12-10 03:21:41 114.35MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -e && cd /usr/share/egroupware-sources && rm -rf status && apt update && apt install -y git && git clone https://github.com/EGroupware/status.git && npm run build # buildkit
# 2025-12-08 23:42:24 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/entrypoint.sh"]
# 2025-12-08 23:42:24 0.00B 设置默认要执行的命令
CMD ["php-fpm" "--nodaemonize"]
# 2025-12-08 23:42:24 5.05KB 复制文件或目录到容器中
ADD entrypoint.sh / # buildkit
# 2025-12-08 23:42:23 0.00B 声明容器运行时监听的端口
EXPOSE [9000/tcp]
# 2025-12-08 23:42:23 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/egroupware-push]
# 2025-12-08 23:42:23 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/php/sessions]
# 2025-12-08 23:42:23 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/egroupware]
# 2025-12-08 23:42:23 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/usr/share/egroupware]
# 2025-12-08 23:42:23 709.78MB 执行命令并创建新的镜像层
RUN |4 VERSION=26.0.20251208 PHP_VERSION=8.4 DEBIAN_FRONTEND=noninteractive TARGETPLATFORM=linux/amd64 /bin/sh -c set -e && cd /usr/share/egroupware && if [ "$TARGETPLATFORM" = "linux/ppc64le" ]; then dist_node_v20=https://nodejs.org/dist/latest-v20.x/ dist_node_v20_ppc64le=$(curl $dist_node_v20|grep ppc64le.tar.xz|cut -d'"' -f2) curl -L $dist_node_v20$dist_node_v20_ppc64le | tar --directory=/usr/local/ -xJvf - ; else mkdir -p /etc/apt/keyrings && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && apt-get update && apt-get install -y nodejs libatomic1 ; fi && npm config set fetch-retries 5 && mkdir chunks && npm install && until npm run build; do sleep 5; npm install; done && npm install -g grunt-cli && until grunt; do sleep 5; npm install -g grunt-cli; done && chmod -R o-w . && npm uninstall -g grunt-cli && npm cache clear --force && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false zip && apt-get clean && mkdir -p /var/lib/egroupware/default/files/sqlfs && mkdir -p /var/lib/egroupware/default/backup && chown -R www-data:www-data /var/lib/egroupware && chmod 700 /var/lib/egroupware/ && ln -s /var/lib/egroupware/header.inc.php /usr/share/egroupware && mkdir -p /var/lib/egroupware-push && chown -R www-data:www-data /var/lib/egroupware-push && ln -s /var/lib/egroupware-push/config.inc.php /usr/share/egroupware/swoolepush && sed 's/apache/www-data/' doc/rpm-build/egroupware.cron > /etc/cron.d/egroupware && patch -p1 < doc/rpm-build/asyncservice.patch && ls /etc/ldap/ldap.conf >/dev/null 2>&1 || apt-get install -y libldap-common && echo "TLS_REQCERT never" >> /etc/ldap/ldap.conf && mv /usr/share/egroupware /usr/share/egroupware-sources # buildkit
# 2025-12-08 23:40:47 490.60MB 执行命令并创建新的镜像层
RUN |4 VERSION=26.0.20251208 PHP_VERSION=8.4 DEBIAN_FRONTEND=noninteractive TARGETPLATFORM=linux/amd64 /bin/sh -c set -e && apt-get update && apt-get install -y software-properties-common && LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php && apt-get update && bash -c "apt-get install -y php$PHP_VERSION-{cli,mysql,gd,xsl,bz2,opcache,tidy,zip,bcmath,mbstring,smbclient,ldap,curl,fpm,pgsql,gmp,memcached}" && apt-get install --no-install-recommends -y php$PHP_VERSION-apcu && bash -c "[[ $PHP_VERSION =~ ^8\..* ]] || apt-get install -y php$PHP_VERSION-json" && sed -e 's/^;\?listen \?=.*/listen = 9000/g' -e '/allowed_clients/d' -e '/pm.max_children/s/=.*/= 80/' -e '/pm.start_servers/s/=.*/= 10/' -e '/pm.min_spare_servers/s/=.*/= 10/' -e '/pm.max_spare_servers/s/=.*/= 20/' -e '/catch_workers_output/s/^;/;/' -e '/error_log/d' -e 's/^;\?pm.max_requests =.*/pm.max_requests = 30/' -e 's/^;\?php_admin_value\[memory_limit\].*/php_admin_value[memory_limit] = 172M/' -e 's/^;\?request_terminate_timeout.*/request_terminate_timeout = 70m/' -i /etc/php/$PHP_VERSION/fpm/pool.d/www.conf && sed -e 's/^;\?session.gc_maxlifetime.*/session.gc_maxlifetime=14400/g' -e 's|^;\?date.timezone.*|date.timezone = UTC|g' -e 's|^;\?sys_temp_dir.*|sys_temp_dir = /tmp|g' -e 's|^;\?disable_functions.*|disable_functions = exec,passthru,shell_exec,system,proc_open,popen|g' -e 's|^;\?max_execution_time \?=.*|max_execution_time = 90|g' -e 's|^;\?upload_max_filesize \?=.*|upload_max_filesize = 64M|g' -e 's|^;\?post_max_size \?=.*|post_max_size = 65M|g' -e 's|^;\?max_input_vars \?=.*|max_input_vars = 2000|g' -e 's|^;\?zlib.output_compression \?=.*|zlib.output_compression = On|g' -e 's|^;\?opcache.validate_timestamps \?=.*|opcache.validate_timestamps=0|g' -i /etc/php/$PHP_VERSION/fpm/php.ini && sed -e 's|^;\?date.timezone.*|date.timezone = UTC|g' -e 's|^;\?sys_temp_dir.*|sys_temp_dir = /tmp|g' -i /etc/php/$PHP_VERSION/cli/php.ini && mkdir -p /run/php && ln -s /dev/stderr /var/log/php$PHP_VERSION-fpm.log && update-alternatives --install /usr/sbin/php-fpm php-fpm /usr/sbin/php-fpm$PHP_VERSION 5 && apt-get install -y xz-utils rsync zip curl sudo cron patch && bash -c 'EXPECTED_SIGNATURE=$(curl https://composer.github.io/installer.sig); curl https://getcomposer.org/installer > composer-setup.php; ACTUAL_SIGNATURE=$(php -r "echo hash_file(\"sha384\", \"composer-setup.php\");"); if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo "ERROR: Invalid Composer installer signature"; RESULT=1; else php composer-setup.php --quiet --install-dir /usr/local/bin; RESULT=$?; fi; rm composer-setup.php; exit $RESULT' && cd /usr/share && bash -c "[[ $PHP_VERSION =~ ^8\..* ]]" && COMPOSER_EXTRA=--ignore-platform-reqs || true && COMPOSER_ALLOW_SUPERUSER=1 composer.phar create-project $COMPOSER_EXTRA --prefer-dist --no-scripts --no-dev egroupware/egroupware:$VERSION && composer.phar clear-cache && rm -f /usr/local/bin/composer.phar # buildkit
# 2025-12-08 23:40:47 0.00B 设置环境变量 PHP_VERSION
ENV PHP_VERSION=8.4
# 2025-12-08 23:40:47 0.00B 设置环境变量 VERSION
ENV VERSION=26.0.20251208
# 2025-12-08 23:40:47 0.00B 定义构建参数
ARG TARGETPLATFORM=linux/amd64
# 2025-12-08 23:40:47 0.00B 定义构建参数
ARG DEBIAN_FRONTEND=noninteractive
# 2025-12-08 23:40:47 0.00B 定义构建参数
ARG PHP_VERSION=8.4
# 2025-12-08 23:40:47 0.00B 定义构建参数
ARG VERSION=26.0.20251208
# 2025-12-08 23:40:47 0.00B
MAINTAINER rb@egroupware.org
# 2025-10-17 03:23:03 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2025-10-17 03:23:03 78.12MB
/bin/sh -c #(nop) ADD file:ddf1aa62235de6657123492b19d27d937c25668011b5ebf923a3f019200f8540 in /
# 2025-10-17 03:23:01 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04
# 2025-10-17 03:23:01 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2025-10-17 03:23:01 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2025-10-17 03:23:01 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:f7f726a35dfbc1e5e618b71ef49b65940400f47f97aa67dac2da3e3e5bbf984f",
"RepoTags": [
"egroupware/egroupware:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/egroupware/egroupware:latest"
],
"RepoDigests": [
"egroupware/egroupware@sha256:35cb0ba482466a7c52a13c2052f1edfeb4f931f75d48f8f30eb778318bd1ea93",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/egroupware/egroupware@sha256:2abc506eb344d0faf729a1197d1d90e2eb88077d55443df97a467f1111ff4d26"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-12-09T19:21:41.078906971Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "rb@egroupware.org",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"9000/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"VERSION=26.0.20251208",
"PHP_VERSION=8.4"
],
"Cmd": [
"php-fpm",
"--nodaemonize"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": {
"/usr/share/egroupware": {},
"/var/lib/egroupware": {},
"/var/lib/egroupware-push": {},
"/var/lib/php/sessions": {}
},
"WorkingDir": "",
"Entrypoint": [
"/entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.version": "24.04"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1392865969,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/af1753c30bf26b6cf7669ce957b5192b1a1f8056b0676b55e0785493cd3e5d4c/diff:/var/lib/docker/overlay2/e70b26f784d2e9914a59f17f1a814ce8a33f5ebb15c48988bd135b5ca8d9347a/diff:/var/lib/docker/overlay2/6784f054bd628ab6089db186af88ac737aa95cab053c8cfe987bd46c09e047cc/diff:/var/lib/docker/overlay2/eb70712178461cb65c5a956187c966c31d60ac41eacf62af98ead2c9415d1d0a/diff",
"MergedDir": "/var/lib/docker/overlay2/2e6e31232c1578a2ed40092d53ed3fdec9cdec2e90df2fda102a4c7a194785b6/merged",
"UpperDir": "/var/lib/docker/overlay2/2e6e31232c1578a2ed40092d53ed3fdec9cdec2e90df2fda102a4c7a194785b6/diff",
"WorkDir": "/var/lib/docker/overlay2/2e6e31232c1578a2ed40092d53ed3fdec9cdec2e90df2fda102a4c7a194785b6/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:e8bce0aabd687e9ee90e0bada33884f40b277196f72aac9934357472863a80ae",
"sha256:b47d8d8ecc74324de34680ab31cac660a473ff354b1a08ab050dc3aa13181fea",
"sha256:b5bc9501d9148d56695b2cea40b8a31cf287d7e04214f058272f03d650dcf37b",
"sha256:02edb413516964b8d42cb6843a3d1bf75619729940095de9cdfa12250c491534",
"sha256:4de5a61f8452d67aa1e14ddc013ab63ab02b7dd4b2ade15549a922768c1a7d2d"
]
},
"Metadata": {
"LastTagTime": "2025-12-16T16:40:51.544203749+08:00"
}
}