镜像构建历史
# 2025-10-14 18:44:27 0.00B 设置默认要执行的命令
CMD ["nginx" "-g" "daemon off;"]
# 2025-10-14 18:44:27 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/bin/bash" "/entrypoint.sh"]
# 2025-10-14 18:44:27 0.00B 指定运行容器时使用的用户
USER penpot:penpot
# 2025-10-14 18:44:27 343.22MB 执行命令并创建新的镜像层
RUN /bin/sh -c chown -R 1001:0 /var/cache/nginx; chmod -R g+w /var/cache/nginx; chown -R 1001:0 /etc/nginx; chmod -R g+w /etc/nginx; chown -R 1001:0 /var/www; chmod -R g+w /var/www; # buildkit
# 2025-10-14 18:44:11 1.67KB 复制文件或目录到容器中
ADD ./files/nginx-entrypoint.sh /entrypoint.sh # buildkit
# 2025-10-14 18:44:11 5.41KB 复制文件或目录到容器中
ADD ./files/nginx-mime.types /etc/nginx/mime.types # buildkit
# 2025-10-14 18:44:11 55.00B 复制文件或目录到容器中
ADD ./files/resolvers.conf /etc/nginx/overrides.d/resolvers.conf.template # buildkit
# 2025-10-14 18:44:11 2.16KB 复制文件或目录到容器中
ADD ./files/nginx-proxies.conf /etc/nginx/nginx-proxies.conf # buildkit
# 2025-10-14 18:44:10 4.74KB 复制文件或目录到容器中
ADD ./files/nginx.conf /etc/nginx/nginx.conf.template # buildkit
# 2025-10-14 18:44:10 50.00B 复制文件或目录到容器中
ADD ./files/config.js /var/www/app/js/config.js # buildkit
# 2025-10-14 18:44:10 343.20MB 复制文件或目录到容器中
ADD ./bundle-frontend/ /var/www/app/ # buildkit
# 2025-10-14 18:44:06 4.55KB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex; useradd -U -M -u 1001 -s /bin/false -d /opt/penpot penpot; mkdir -p /opt/data/assets; chown -R penpot:penpot /opt/data; # buildkit
# 2025-10-14 18:44:06 0.00B 指定运行容器时使用的用户
USER root
# 2025-10-14 18:44:06 0.00B 添加元数据标签
LABEL maintainer=Penpot <docker@penpot.app>
# 2025-10-10 07:29:38 0.00B 设置默认要执行的命令
CMD ["nginx" "-g" "daemon off;"]
# 2025-10-10 07:29:38 0.00B 指定运行容器时使用的用户
USER 101
# 2025-10-10 07:29:38 0.00B 设置停止容器时发送的系统调用信号
STOPSIGNAL SIGQUIT
# 2025-10-10 07:29:38 0.00B 声明容器运行时监听的端口
EXPOSE [8080/tcp]
# 2025-10-10 07:29:38 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/docker-entrypoint.sh"]
# 2025-10-10 07:29:38 4.62KB 复制新文件或目录到容器中
COPY 30-tune-worker-processes.sh /docker-entrypoint.d # buildkit
# 2025-10-10 07:29:38 3.01KB 复制新文件或目录到容器中
COPY 20-envsubst-on-templates.sh /docker-entrypoint.d # buildkit
# 2025-10-10 07:29:38 389.00B 复制新文件或目录到容器中
COPY 15-local-resolvers.envsh /docker-entrypoint.d # buildkit
# 2025-10-10 07:29:38 2.13KB 复制新文件或目录到容器中
COPY 10-listen-on-ipv6-by-default.sh /docker-entrypoint.d # buildkit
# 2025-10-10 07:29:38 1.62KB 复制新文件或目录到容器中
COPY docker-entrypoint.sh / # buildkit
# 2025-10-10 07:29:38 13.86KB 执行命令并创建新的镜像层
RUN |2 UID=101 GID=101 /bin/sh -c sed -i 's,listen 80;,listen 8080;,' /etc/nginx/conf.d/default.conf && sed -i '/user nginx;/d' /etc/nginx/nginx.conf && sed -i 's,\(/var\)\{0\,1\}/run/nginx.pid,/tmp/nginx.pid,' /etc/nginx/nginx.conf && sed -i "/^http {/a \ proxy_temp_path /tmp/proxy_temp;\n client_body_temp_path /tmp/client_temp;\n fastcgi_temp_path /tmp/fastcgi_temp;\n uwsgi_temp_path /tmp/uwsgi_temp;\n scgi_temp_path /tmp/scgi_temp;\n" /etc/nginx/nginx.conf && sed -i 's,PIDFILE=${PIDFILE:-/run/nginx.pid},PIDFILE=${PIDFILE:-/tmp/nginx.pid},' /etc/init.d/nginx && chown -R $UID:0 /var/cache/nginx && chmod -R g+w /var/cache/nginx && chown -R $UID:0 /etc/nginx && chmod -R g+w /etc/nginx # buildkit
# 2025-10-10 07:29:37 117.56MB 执行命令并创建新的镜像层
RUN |2 UID=101 GID=101 /bin/sh -c set -x && groupadd --system --gid $GID nginx || true && useradd --system --gid nginx --no-create-home --home /nonexistent --comment "nginx user" --shell /bin/false --uid $UID nginx || true && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates && NGINX_GPGKEYS="573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 8540A6F18833A80E9C1653A42FD21310B49F6B46 9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3"; NGINX_GPGKEY_PATH=/etc/apt/keyrings/nginx-archive-keyring.gpg; export GNUPGHOME="$(mktemp -d)"; found=''; for NGINX_GPGKEY in $NGINX_GPGKEYS; do for server in hkp://keyserver.ubuntu.com:80 pgp.mit.edu ; do echo "Fetching GPG key $NGINX_GPGKEY from $server"; gpg1 --batch --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$NGINX_GPGKEY" && found=yes && break; done; test -z "$found" && echo >&2 "error: failed to fetch GPG key $NGINX_GPGKEY" && exit 1; done; gpg1 --batch --export $NGINX_GPGKEYS > "$NGINX_GPGKEY_PATH" ; rm -rf "$GNUPGHOME"; apt-get remove --purge --auto-remove -y gnupg1 && rm -rf /var/lib/apt/lists/* && dpkgArch="$(dpkg --print-architecture)" && nginxPackages=" nginx=${NGINX_VERSION}-${PKG_RELEASE} nginx-module-xslt=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-geoip=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-image-filter=${NGINX_VERSION}-${DYNPKG_RELEASE} nginx-module-njs=${NGINX_VERSION}+${NJS_VERSION}-${NJS_RELEASE} " && case "$dpkgArch" in amd64|arm64) echo "deb [signed-by=$NGINX_GPGKEY_PATH] https://nginx.org/packages/mainline/debian/ bookworm nginx" >> /etc/apt/sources.list.d/nginx.list && apt-get update ;; *) tempDir="$(mktemp -d)" && chmod 777 "$tempDir" && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install --no-install-recommends --no-install-suggests -y curl devscripts equivs git libxml2-utils lsb-release xsltproc && ( cd "$tempDir" && REVISION="${NGINX_VERSION}-${PKG_RELEASE}" && REVISION=${REVISION%~*} && curl -f -L -O https://github.com/nginx/pkg-oss/archive/${REVISION}.tar.gz && PKGOSSCHECKSUM="43ecd667d9039c9ab0fab9068c16b37825b15f7d4ef6ea8f36a41378bdf1a198463c751f8b76cfe2aef7ffa8dd9f88f180b958a8189d770258b5a97dc302daf4 *${REVISION}.tar.gz" && if [ "$(openssl sha512 -r ${REVISION}.tar.gz)" = "$PKGOSSCHECKSUM" ]; then echo "pkg-oss tarball checksum verification succeeded!"; else echo "pkg-oss tarball checksum verification failed!"; exit 1; fi && tar xzvf ${REVISION}.tar.gz && cd pkg-oss-${REVISION} && cd debian && for target in base module-geoip module-image-filter module-njs module-xslt; do make rules-$target; mk-build-deps --install --tool="apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes" debuild-$target/nginx-$NGINX_VERSION/debian/control; done && make base module-geoip module-image-filter module-njs module-xslt ) && apt-mark showmanual | xargs apt-mark auto > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; } && ls -lAFh "$tempDir" && ( cd "$tempDir" && dpkg-scanpackages . > Packages ) && grep '^Package: ' "$tempDir/Packages" && echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list && apt-get -o Acquire::GzipIndexes=false update ;; esac && apt-get install --no-install-recommends --no-install-suggests -y $nginxPackages gettext-base curl && apt-get remove --purge --auto-remove -y && rm -rf /var/lib/apt/lists/* /etc/apt/sources.list.d/nginx.list && if [ -n "$tempDir" ]; then apt-get purge -y --auto-remove && rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list; fi && ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log && mkdir /docker-entrypoint.d # buildkit
# 2025-10-10 07:29:37 0.00B 定义构建参数
ARG GID=101
# 2025-10-10 07:29:37 0.00B 定义构建参数
ARG UID=101
# 2025-10-10 07:29:37 0.00B 设置环境变量 DYNPKG_RELEASE
ENV DYNPKG_RELEASE=1~bookworm
# 2025-10-10 07:29:37 0.00B 设置环境变量 PKG_RELEASE
ENV PKG_RELEASE=1~bookworm
# 2025-10-10 07:29:37 0.00B 设置环境变量 NJS_RELEASE
ENV NJS_RELEASE=1~bookworm
# 2025-10-10 07:29:37 0.00B 设置环境变量 NJS_VERSION
ENV NJS_VERSION=0.9.1
# 2025-10-10 07:29:37 0.00B 设置环境变量 NGINX_VERSION
ENV NGINX_VERSION=1.29.1
# 2025-10-10 07:29:37 0.00B 添加元数据标签
LABEL maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>
# 2025-09-29 08:00:00 74.81MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1759104000'
镜像信息
{
"Id": "sha256:e0bd17e2a5fc3e61133a4c97ccf9c63ed2d7db3581b20de4f023ba18d78c4ae7",
"RepoTags": [
"penpotapp/frontend:2.10.1",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/penpotapp/frontend:2.10.1"
],
"RepoDigests": [
"penpotapp/frontend@sha256:c016a77555da6f004cf16d0640b71f1ffdde11908fa6037562a977b83d24c3da",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/penpotapp/frontend@sha256:c016a77555da6f004cf16d0640b71f1ffdde11908fa6037562a977b83d24c3da"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-10-14T10:44:27.571030073Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "penpot:penpot",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.29.1",
"NJS_VERSION=0.9.1",
"NJS_RELEASE=1~bookworm",
"PKG_RELEASE=1~bookworm",
"DYNPKG_RELEASE=1~bookworm"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/bin/bash",
"/entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "Penpot \u003cdocker@penpot.app\u003e",
"org.opencontainers.image.created": "2025-10-09T23:28:46.609Z",
"org.opencontainers.image.description": "Unprivileged NGINX Dockerfiles",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.revision": "a3584b5a832eae07fe41c93f9e5e54d726edc3ab",
"org.opencontainers.image.source": "https://github.com/nginx/docker-nginx-unprivileged",
"org.opencontainers.image.title": "docker-nginx-unprivileged",
"org.opencontainers.image.url": "https://github.com/nginx/docker-nginx-unprivileged",
"org.opencontainers.image.version": "1.29.1"
},
"StopSignal": "SIGQUIT"
},
"Architecture": "amd64",
"Os": "linux",
"Size": 878834560,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/d70c330c9e56ed78bca406c01f763ac2c2c7eb1741201eec6aeeee79477c77bc/diff:/var/lib/docker/overlay2/4f5711015030fc21cd6c35582ed13c38b68c41c04fa34ffc1f77ab142d51dd28/diff:/var/lib/docker/overlay2/1856d7ee1c5d1e915d59360327c8c2eafb48509d0f161200608e784e74497c75/diff:/var/lib/docker/overlay2/4ca3d4dbbec278629f895349b7da8e2e4a4014675f3142c73550dc454f97133d/diff:/var/lib/docker/overlay2/2fd72189624c4e15e9f6519504375c54363af3ebbea1ba3bdf551769d2fbe7ac/diff:/var/lib/docker/overlay2/e3aadf07cc7a958cfb421524bb42581c078876a52dbcf1269bbab3febe3cbcc5/diff:/var/lib/docker/overlay2/b6b2069eb62be88a84fe327a13689528fcf2fba2880fa99ccbee38e451fd6112/diff:/var/lib/docker/overlay2/e7a0dcc9e3d479511290b92b4bd9db70e285353439fbdc8d9574e30a33863457/diff:/var/lib/docker/overlay2/f14888be52cb49ded5ad58499fea53ee925b6a1f5d404d5d7ce0f76f672548ff/diff:/var/lib/docker/overlay2/aac4c39bed7df0c7f84cbba8d1712c2583c01bf6fc8132918f4ec1689590d511/diff:/var/lib/docker/overlay2/878a333864934a65c24b8541f2ec2cec14d04b342ef8968a2ae276ff148a1efe/diff:/var/lib/docker/overlay2/09c5445a4306aa7029fc6bce52e097d28a85669bca3a6993979d8d82dd08dd7f/diff:/var/lib/docker/overlay2/0ad73668e0a23dce95a885d280847685ded72dce5b910409a2ce06a8b2497a2a/diff:/var/lib/docker/overlay2/e712d0af68c23efd90ffe617cf3648657ee27c4e6370b32b7e0d2733639a5631/diff:/var/lib/docker/overlay2/c2c4c5aee544ca699057e43cfbdc95088c32cdc909b8de1b54ddbbf09f8a5a97/diff:/var/lib/docker/overlay2/0af95756526e4a09e674bbaf3b540959266526c68701b6bc0f7f43100f6305b4/diff",
"MergedDir": "/var/lib/docker/overlay2/0009e36db653492792fcfd12b2f1c0c24d0aa062c47d2732678d47bd1d940a54/merged",
"UpperDir": "/var/lib/docker/overlay2/0009e36db653492792fcfd12b2f1c0c24d0aa062c47d2732678d47bd1d940a54/diff",
"WorkDir": "/var/lib/docker/overlay2/0009e36db653492792fcfd12b2f1c0c24d0aa062c47d2732678d47bd1d940a54/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:aca83606673032726b42f8e1396ceb979c32bfb26b602732baf699053e46b33e",
"sha256:2047c57fb117dacd442e6ce3fdc32289f6cb8825727c40f49a7c1ad46bf4dfb0",
"sha256:1427529dccaa7cc3fbb11cb581e4b5d1372bf3a5cda29dc72783a7cdfe4881c7",
"sha256:77cd50ede5255418d1098edd0f6055b836a07e246995a79e74dcdfca08e10b75",
"sha256:6bfe38cadb38c9e3a4514a5ba65271ed96017030396655db0ef4abfb10f300fd",
"sha256:78827a1f9391ac18f592a271c4c1b277e96a604deb96fd9db91ef3bbda83421b",
"sha256:6b285282286cc44a2b18d7c743195831520c1630c511f288a8cc615aab9b9703",
"sha256:229dd6386f4826862b2870bca4e3ce350a4eb80560110ceded9062a4ea7ef365",
"sha256:67e02bf29ee5bcf7e85f8600fcc9d9c6c213ef85e378e6e40cf79d85505f6e91",
"sha256:4800865ced376df8078db183124aecf0af62f8d678f96cc25cbea8f64e889902",
"sha256:82547ca6cad478d89b7e5de097226c9e7e50f75aabb912fe19478969abbfaaae",
"sha256:34600e8ae26c11f1915a4c95e3f0dd0d589374436879961d07a33fca2152376e",
"sha256:d0b0d0f73504c98662ad6aa42413f863780ce05ddf036806123fd649d64285fc",
"sha256:d82d9a33190c9f185823c8b06e86fd7a8e2f93a41eb30456048dbfe5339b33d7",
"sha256:2e5a6568e57eec1c5427498ccd5e04833f80ea3269dfe11804780f280baf0422",
"sha256:248bc064d1c269a4b37f1a2ec4d1d39efe9ba83ed416cd6a3779c82ddfadc2bd",
"sha256:1ab9f4fef1ba6df1a103cd54875e91c97ec951cb973044a19790195d3336fd35"
]
},
"Metadata": {
"LastTagTime": "2025-10-21T19:55:23.382958258+08:00"
}
}