镜像构建历史
# 2025-05-20 03:45:27 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/start-nginx.sh"]
# 2025-05-20 03:45:27 816.00B 执行命令并创建新的镜像层
RUN /bin/sh -c chmod +x /start-nginx.sh # buildkit
# 2025-05-20 03:45:27 1.19KB 复制新文件或目录到容器中
COPY --chown=nginx ./docker/frontend/default.conf.template /etc/nginx/conf.d/default.conf.template # buildkit
# 2025-05-20 03:45:27 816.00B 复制新文件或目录到容器中
COPY --chown=nginx ./docker/frontend/start-nginx.sh /start-nginx.sh # buildkit
# 2025-05-20 03:45:27 24.03MB 复制新文件或目录到容器中
COPY --chown=nginx /frontend/build /usr/share/nginx/html # buildkit
# 2025-05-20 03:45:27 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/langflow-ai/langflow
# 2025-05-20 03:45:27 0.00B 添加元数据标签
LABEL org.opencontainers.image.url=https://github.com/langflow-ai/langflow
# 2025-05-20 03:45:27 0.00B 添加元数据标签
LABEL org.opencontainers.image.licenses=MIT
# 2025-05-20 03:45:27 0.00B 添加元数据标签
LABEL org.opencontainers.image.authors=[Langflow]
# 2025-05-20 03:45:27 0.00B 添加元数据标签
LABEL org.opencontainers.image.title=langflow-frontend
# 2025-05-19 11:27:19 0.00B 指定运行容器时使用的用户
USER 101
# 2025-05-19 11:27:19 48.01MB 执行命令并创建新的镜像层
RUN |2 UID=101 GID=101 /bin/sh -c set -x; NGINX_GPGKEY_PATH=/etc/apt/keyrings/nginx-archive-keyring.gpg; 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-perl=${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/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="517bc18954ccf4efddd51986584ca1f37966833ad342a297e1fe58fd0faf14c5a4dabcb23519dca433878a2927a95d6bea05a6749ee2fa67a33bf24cdc41b1e4 *${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 module-perl; 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 module-perl ) && 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 # buildkit
# 2025-05-19 11:27:19 0.00B 指定运行容器时使用的用户
USER root
# 2025-05-19 11:27:19 0.00B 定义构建参数
ARG GID=101
# 2025-05-19 11:27:19 0.00B 定义构建参数
ARG UID=101
# 2025-05-19 08:05:06 0.00B 设置默认要执行的命令
CMD ["nginx" "-g" "daemon off;"]
# 2025-05-19 08:05:06 0.00B 指定运行容器时使用的用户
USER 101
# 2025-05-19 08:05:06 0.00B 设置停止容器时发送的系统调用信号
STOPSIGNAL SIGQUIT
# 2025-05-19 08:05:06 0.00B 声明容器运行时监听的端口
EXPOSE map[8080/tcp:{}]
# 2025-05-19 08:05:06 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/docker-entrypoint.sh"]
# 2025-05-19 08:05:06 4.62KB 复制新文件或目录到容器中
COPY 30-tune-worker-processes.sh /docker-entrypoint.d # buildkit
# 2025-05-19 08:05:06 3.01KB 复制新文件或目录到容器中
COPY 20-envsubst-on-templates.sh /docker-entrypoint.d # buildkit
# 2025-05-19 08:05:06 389.00B 复制新文件或目录到容器中
COPY 15-local-resolvers.envsh /docker-entrypoint.d # buildkit
# 2025-05-19 08:05:06 2.13KB 复制新文件或目录到容器中
COPY 10-listen-on-ipv6-by-default.sh /docker-entrypoint.d # buildkit
# 2025-05-19 08:05:06 1.62KB 复制新文件或目录到容器中
COPY docker-entrypoint.sh / # buildkit
# 2025-05-19 08:05:06 9.58KB 执行命令并创建新的镜像层
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 && 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-05-19 08:05:06 117.64MB 执行命令并创建新的镜像层
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 --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 --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/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="517bc18954ccf4efddd51986584ca1f37966833ad342a297e1fe58fd0faf14c5a4dabcb23519dca433878a2927a95d6bea05a6749ee2fa67a33bf24cdc41b1e4 *${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-05-19 08:05:06 0.00B 定义构建参数
ARG GID=101
# 2025-05-19 08:05:06 0.00B 定义构建参数
ARG UID=101
# 2025-05-19 08:05:06 0.00B 设置环境变量 DYNPKG_RELEASE
ENV DYNPKG_RELEASE=1~bookworm
# 2025-05-19 08:05:06 0.00B 设置环境变量 PKG_RELEASE
ENV PKG_RELEASE=1~bookworm
# 2025-05-19 08:05:06 0.00B 设置环境变量 NJS_RELEASE
ENV NJS_RELEASE=1~bookworm
# 2025-05-19 08:05:06 0.00B 设置环境变量 NJS_VERSION
ENV NJS_VERSION=0.8.10
# 2025-05-19 08:05:06 0.00B 设置环境变量 NGINX_VERSION
ENV NGINX_VERSION=1.28.0
# 2025-05-19 08:05:06 0.00B 添加元数据标签
LABEL maintainer=NGINX Docker Maintainers <docker-maint@nginx.com>
# 2025-04-28 08:00:00 74.83MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1745798400'
镜像信息
{
"Id": "sha256:eda1e8af08c5a6adb6e0feb7ae116b7508a572e8c3dcab56f1cd559e641a2ada",
"RepoTags": [
"langflowai/langflow-frontend:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langflowai/langflow-frontend:latest"
],
"RepoDigests": [
"langflowai/langflow-frontend@sha256:c14a820fc2ea314b3bc2fba8327a528eea4de9bf2f5e50da61e513346a4a1942",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langflowai/langflow-frontend@sha256:6ed6a74f18f9b6b7df2132fb6d692a674f17138b649f016d9da648f706ef3a94"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-05-19T19:45:27.871977802Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "101",
"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.28.0",
"NJS_VERSION=0.8.10",
"NJS_RELEASE=1~bookworm",
"PKG_RELEASE=1~bookworm",
"DYNPKG_RELEASE=1~bookworm"
],
"Cmd": null,
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/start-nginx.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e",
"org.opencontainers.image.authors": "[Langflow]",
"org.opencontainers.image.created": "2025-05-19T03:26:55.712Z",
"org.opencontainers.image.description": "Unprivileged NGINX Dockerfiles",
"org.opencontainers.image.licenses": "MIT",
"org.opencontainers.image.revision": "8c57fb5da836c4a7244a0b186028d44c67d11a21",
"org.opencontainers.image.source": "https://github.com/langflow-ai/langflow",
"org.opencontainers.image.title": "langflow-frontend",
"org.opencontainers.image.url": "https://github.com/langflow-ai/langflow",
"org.opencontainers.image.version": "1.28.0-perl"
},
"StopSignal": "SIGQUIT"
},
"Architecture": "amd64",
"Os": "linux",
"Size": 264533826,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/953d4d4b1c404f81753575096f195c7dd9833c0fa57d2498f2ee40d91067f53b/diff:/var/lib/docker/overlay2/512987e2ee56e45cb464832104633663df234fbbc3912e85f948d23fe3477b08/diff:/var/lib/docker/overlay2/760832348b0a5eb1d672ed8566d70cedbdb72804f47a47679fa40337f9f178f4/diff:/var/lib/docker/overlay2/4a90553150f9e7cce7f7758b96b6f4ee05be4a54301a9b8d1657b4fa2886da82/diff:/var/lib/docker/overlay2/764399d32c690dc7fc8e07fd10a3edccefcc8ae81e8b2b64f70eb809ad177ff6/diff:/var/lib/docker/overlay2/087775228c530065e267b9b84bba550fea036359fa3bbf8946d9e531d274a0cf/diff:/var/lib/docker/overlay2/554f2e6f908e8a3914474d4f4eb22a991386ad029addf0f8835a22ec256d38a2/diff:/var/lib/docker/overlay2/ee5f1af337c8661b8eadd2cbceda0e1513aadec15558204835556feae332f772/diff:/var/lib/docker/overlay2/13ab20bbe20987107420a270f2ec1ebe270552c3c8b6277025ca612a8438327c/diff:/var/lib/docker/overlay2/69b929bcb0cd1df0768aef49b1480900ba6e7a14a702487dacf2bdfe9eca7c0d/diff:/var/lib/docker/overlay2/17f0808ef47c5e9a87a87fc837255c7bfcacb42761672317aa6e19651d046662/diff:/var/lib/docker/overlay2/cd9cb36f82b4a6a570304a082a3d97b369643777f7f7b25df6d47ffb3b3d36ab/diff",
"MergedDir": "/var/lib/docker/overlay2/c9afc06749d564eaa9a0a13791bcd43f5e8b79b88fda0d371dd7990e048796b7/merged",
"UpperDir": "/var/lib/docker/overlay2/c9afc06749d564eaa9a0a13791bcd43f5e8b79b88fda0d371dd7990e048796b7/diff",
"WorkDir": "/var/lib/docker/overlay2/c9afc06749d564eaa9a0a13791bcd43f5e8b79b88fda0d371dd7990e048796b7/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:6c4c763d22d0c5f9b2c5901dfa667fbbc4713cee6869336b8fd5022185071f1c",
"sha256:6ab947bef0932ed5f69a0f2244c1d5561e42f68392d1e58d099515f831143a3a",
"sha256:c1bf8a134000fcb3477993a936d8bf4a7f23968e28dbb5ab90127f2f6413acec",
"sha256:9a0964274ba74216fc12af88427934f8ccf138893f8cfaab79b42db5c3b2bf72",
"sha256:d5ec9d58a2da7e2477724f5331c91465df1fd7b7530d204583e44e905caf0b21",
"sha256:8c49c8e113afa56209b48957b301c387b8cbe4bac6b616d9e03d2e6b4650aaf3",
"sha256:e80017ad2bdc1bf4fa6b8dd55064dbb32d61a1b48598d570324e2b6f3d50e32f",
"sha256:8dc5ab56bb045b95386890fb91d520f6d122353f9fc1e0269850d2fda2ecd5dd",
"sha256:a2e2f95fbfd783c88422bb0c99b39dfef380df65a61198d8d1339a47b670768b",
"sha256:16e3efc11229c502fd4e7c57056a2d57b02f950ff788eb78941054c083348506",
"sha256:7d0ea9fa34b9b219e138c4df3e765293d9a7572e4f2ec9425809dd1184f562b9",
"sha256:e2a5eff5e2fed94eb2231460bfd27d8a4f35db961f718a6cef90376859fd8136",
"sha256:7818715ef23328052f8182253e1487a019a4eb3d8096104f29d36e4240cca923"
]
},
"Metadata": {
"LastTagTime": "2025-05-30T20:55:59.864390005+08:00"
}
}