镜像构建历史
# 2025-11-26 23:15:44 944.00B 执行命令并创建新的镜像层
RUN |2 DEBIAN_FRONTEND=noninteractive DEBIAN_RELEASE=trixie /bin/sh -c jq -n --slurpfile sources /tmp/sources.json --slurpfile packages /tmp/packages.json '{sources: $sources[0], packages: $packages[0]}' > /build/build-lock.json # buildkit
# 2025-11-26 23:15:44 595.00B 执行命令并创建新的镜像层
RUN |2 DEBIAN_FRONTEND=noninteractive DEBIAN_RELEASE=trixie /bin/sh -c jq -s '.' sources/*.json > /tmp/sources.json # buildkit
# 2025-11-26 23:15:44 9.31KB 复制新文件或目录到容器中
COPY sources/ ./sources/ # buildkit
# 2025-11-26 23:15:44 247.00B 执行命令并创建新的镜像层
RUN |2 DEBIAN_FRONTEND=noninteractive DEBIAN_RELEASE=trixie /bin/sh -c jq -s '.' packages/*.json > /tmp/packages.json # buildkit
# 2025-11-26 23:15:43 1.14KB 复制新文件或目录到容器中
COPY packages/ ./packages/ # buildkit
# 2025-11-26 23:15:43 36.85KB 执行命令并创建新的镜像层
RUN |2 DEBIAN_FRONTEND=noninteractive DEBIAN_RELEASE=trixie /bin/sh -c ldconfig /usr/local/lib # buildkit
# 2025-11-26 23:15:43 0.00B 设置环境变量 LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/lib/jellyfin-ffmpeg/lib:/usr/lib/wsl/lib:/usr/local/lib
# 2025-11-26 23:15:43 53.96MB 复制新文件或目录到容器中
COPY /build/geodata /build/geodata # buildkit
# 2025-11-25 20:40:22 560.88KB 复制新文件或目录到容器中
COPY /usr/local/include/vips/ /usr/local/include/vips/ # buildkit
# 2025-11-25 20:40:22 297.84KB 复制新文件或目录到容器中
COPY /usr/local/bin/vips* /usr/local/bin/ # buildkit
# 2025-11-25 20:40:22 119.63MB 复制新文件或目录到容器中
COPY /usr/local/lib/ /usr/local/lib/ # buildkit
# 2025-11-15 05:21:14 0.00B 复制新文件或目录到容器中
COPY /usr/bin/make /usr/bin/make # buildkit
# 2025-11-15 05:21:14 0.00B 复制新文件或目录到容器中
COPY /usr/bin/tini /usr/bin/tini # buildkit
# 2025-10-23 00:41:47 58.99MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_FRONTEND=noninteractive DEBIAN_RELEASE=trixie /bin/sh -c ./ffmpeg.sh # buildkit
# 2025-10-23 00:41:41 1.14KB 复制新文件或目录到容器中
COPY packages/ffmpeg.json packages/ffmpeg.sh ./ # buildkit
# 2025-10-23 00:41:40 0.00B 设置环境变量 DEBIAN_RELEASE
ENV DEBIAN_RELEASE=trixie
# 2025-10-23 00:41:40 0.00B 定义构建参数
ARG DEBIAN_RELEASE=trixie
# 2025-10-23 00:41:40 728.59MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_FRONTEND=noninteractive DEBIAN_RELEASE=trixie /bin/sh -c echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt ${DEBIAN_RELEASE}-pgdg main" > /etc/apt/sources.list.d/pgdg.list && apt-get update && apt-get install --no-install-recommends -yqq git autoconf automake libtool libltdl-dev build-essential cmake jq libbrotli-dev libde265-dev libexif-dev libexpat1-dev libglib2.0-dev libgsf-1-dev libmimalloc3 libjpeg62-turbo-dev liblcms2-dev librsvg2-dev libspng-dev meson ninja-build pkg-config wget unzip zlib1g postgresql-client-14 postgresql-client-15 postgresql-client-16 postgresql-client-17 postgresql-client-18 tini make ocl-icd-libopencl1 libopenmpt0 libbluray2 libvpx9 libzvbi0 libmp3lame0 libopus0 libtheora0 libvorbis0a libvorbisenc2 libx264-164 libdav1d-dev libhwy-dev libwebp-dev libio-compress-brotli-perl libaom-dev # buildkit
# 2025-10-23 00:40:37 4.81KB 复制文件或目录到容器中
ADD --chmod=644 https://www.postgresql.org/media/keys/ACCC4CF8.asc /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc # buildkit
# 2025-10-23 00:40:37 54.07MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_FRONTEND=noninteractive DEBIAN_RELEASE=trixie /bin/sh -c ./configure-apt.sh && apt-get update && apt-get install --no-install-recommends -yqq ca-certificates && mkdir -p /usr/share/postgresql-common/pgdg # buildkit
# 2025-10-01 12:42:35 917.00B 复制新文件或目录到容器中
COPY configure-apt.sh ./ # buildkit
# 2025-09-03 07:32:42 0.00B 设置环境变量 LD_LIBRARY_PATH LD_RUN_PATH
ENV LD_LIBRARY_PATH=/usr/local/lib LD_RUN_PATH=/usr/local/lib
# 2025-09-03 07:32:42 0.00B 设置工作目录为/usr/src/app
WORKDIR /usr/src/app
# 2025-09-03 07:32:42 0.00B 设置环境变量 DEBIAN_RELEASE
ENV DEBIAN_RELEASE=trixie
# 2025-09-03 07:32:42 0.00B 定义构建参数
ARG DEBIAN_RELEASE=trixie
# 2025-09-03 07:32:42 0.00B 定义构建参数
ARG DEBIAN_FRONTEND=noninteractive
# 2025-08-11 16:15:17 0.00B 设置默认要执行的命令
CMD ["node"]
# 2025-08-11 16:15:17 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
# 2025-08-11 16:15:17 388.00B 复制新文件或目录到容器中
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
# 2025-08-11 16:15:17 7.24MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apt-mark auto '.*' > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && yarn --version && rm -rf /tmp/* # buildkit
# 2025-08-11 16:15:17 0.00B 设置环境变量 YARN_VERSION
ENV YARN_VERSION=1.22.22
# 2025-08-11 16:15:17 140.29MB 执行命令并创建新的镜像层
RUN /bin/sh -c ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" && case "${dpkgArch##*-}" in amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; *) echo "unsupported architecture"; exit 1 ;; esac && set -ex && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apt-mark auto '.*' > /dev/null && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && ln -s /usr/local/bin/node /usr/local/bin/nodejs && node --version && npm --version && rm -rf /tmp/* # buildkit
# 2025-08-11 16:15:17 0.00B 设置环境变量 NODE_VERSION
ENV NODE_VERSION=22.18.0
# 2025-08-11 16:15:17 8.90KB 执行命令并创建新的镜像层
RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit
# 2025-08-11 08:00:00 100.56MB
# debian.sh --arch 'arm64' out/ 'trixie' '@1754870400'
镜像信息
{
"Id": "sha256:0029a73c0ced9ffa81b41aed56adcc2e970fec42b4d1329b29e0c6ef39ad85e8",
"RepoTags": [
"ghcr.io/immich-app/base-server-dev:202511261514",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/immich-app/base-server-dev:202511261514-linuxarm64"
],
"RepoDigests": [
"ghcr.io/immich-app/base-server-dev@sha256:cbcca5851fd11042463f09797e6d6068d94adbb108749e62aa69159df59c0591",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/immich-app/base-server-dev@sha256:3ed289e792a4a23e588067ed134f037e7578175b5b30d5fa5ae61c8255b1400a"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-11-26T15:15:44.371457097Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NODE_VERSION=22.18.0",
"YARN_VERSION=1.22.22",
"DEBIAN_RELEASE=trixie",
"LD_LIBRARY_PATH=/usr/lib/jellyfin-ffmpeg/lib:/usr/lib/wsl/lib:/usr/local/lib",
"LD_RUN_PATH=/usr/local/lib"
],
"Cmd": [
"node"
],
"Image": "",
"Volumes": null,
"WorkingDir": "/usr/src/app",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2025-11-26T15:15:16.867Z",
"org.opencontainers.image.description": "Base images for Immich containers",
"org.opencontainers.image.licenses": "AGPL-3.0",
"org.opencontainers.image.revision": "1a296345493cc463904d021b600a1855cce89783",
"org.opencontainers.image.source": "https://github.com/immich-app/base-images",
"org.opencontainers.image.title": "base-images",
"org.opencontainers.image.url": "https://github.com/immich-app/base-images",
"org.opencontainers.image.version": "202511261514"
}
},
"Architecture": "arm64",
"Os": "linux",
"Size": 1264265298,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/a294229cbf5f172b5798b28593bdd2088ab49b4dc112d504aaa1ce8a7c381456/diff:/var/lib/docker/overlay2/c5df4a47c6583d5e75f2db054054174e5e28894318cf34aca86e866bca7954a6/diff:/var/lib/docker/overlay2/3a898faa8b036ac2b709831f5e75049df8132e1d2c2b13c3bad8f14c5e31f19b/diff:/var/lib/docker/overlay2/0e50c97ed198f6119dce3c7127fa6310d4c2003df056068b25da639a355e802d/diff:/var/lib/docker/overlay2/41198bdd5f62d02649e7ade036e15865d97a095248aac780c00babba469ae264/diff:/var/lib/docker/overlay2/52f371d25ec8ab8f17c1f57d843dcd7aa6d876b0c5a6a3b0f24a69d36a6abdd9/diff:/var/lib/docker/overlay2/59978e4b9d9b9a58c7107d43b2c24c68656145208b693a4cce8dfafbf7a20e66/diff:/var/lib/docker/overlay2/a71170628729dac85d66f5547bd8cfaa5ffcd821ba747461cf954ae8eb16cde0/diff:/var/lib/docker/overlay2/1f5e4ad4acc028e74cadf907acc813b80e633849f69c58cdb5fbc54a6189c140/diff:/var/lib/docker/overlay2/b1eb6885f850e3d16108041100b5d6a0e670a9d554f3f4cc17a0f28f34852ccc/diff:/var/lib/docker/overlay2/a9153af908965d420a8194ca35325b4001fddce83d319497b68161627c96e5f1/diff:/var/lib/docker/overlay2/b0396db08ab08149ac927735db6d519440cbdcb08872d2f1ee6760976996b027/diff:/var/lib/docker/overlay2/1174e627c4429e2cbe80c491c62246573228a3f3265e17a701ac9df225c62bac/diff:/var/lib/docker/overlay2/88fb8fcc4565c4bcaafedf2e91c806bd9e443c83cdfac5d6c45a2fa73178ef5b/diff:/var/lib/docker/overlay2/090cd75af7d8aee29be6247931fa32ee0eae3e0f070509aa22624e6ac623f136/diff:/var/lib/docker/overlay2/c62961365ac009859ffea5fc7135cd2881bb1add0fe96ff7271ccdba6fcc6b8e/diff:/var/lib/docker/overlay2/d8c0c3925f6d3919899cf9dfa23ee379f5c9a49f0802e0dd1897eb1cccc1ea81/diff:/var/lib/docker/overlay2/6beb076f882651de5a41c3afa94d6a1a44d415fbd4f58e9066f546d16ee368b5/diff:/var/lib/docker/overlay2/9a895c44c02dccfdcb3f9c105085ab143b2a8d0af674cf3f75b229766f371f43/diff:/var/lib/docker/overlay2/41a9ed056871453532315cb00a2f7976e974cedc4fe3cf743b0e0067eefbf274/diff:/var/lib/docker/overlay2/cfcd3099203e8c8ec9bb9cb2ae930c4d01dfd1e1bb6b24084dd2e94d9c12954c/diff:/var/lib/docker/overlay2/bec338c26d6f255b859af6db1d08b75e379380186686af189c611c18ec842c9b/diff:/var/lib/docker/overlay2/5f9c448f52232c9d82c8d0fb60ff029dc6b5da8518ce03705bc2f900bd3a9dee/diff",
"MergedDir": "/var/lib/docker/overlay2/ba59814f43ea183c99e0b1e1c57b0c2ea317484d73e469bac69586fbc1dbc561/merged",
"UpperDir": "/var/lib/docker/overlay2/ba59814f43ea183c99e0b1e1c57b0c2ea317484d73e469bac69586fbc1dbc561/diff",
"WorkDir": "/var/lib/docker/overlay2/ba59814f43ea183c99e0b1e1c57b0c2ea317484d73e469bac69586fbc1dbc561/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:2a7f563c8c5a6f6ea12726995d454456dcf25752712a1cdf1d7e1b47c23179af",
"sha256:64ac3a46068fbbff212f9b58dd08f6bfd6e8d11214ab942f172966ac5c96d935",
"sha256:b7776ec70ae2ff57d42613d95f452cd025b5759e2fe7b5ff4a7932652972ca57",
"sha256:cab38b5aed3d9dca25983a7e088411677a3445117f923e13b1f288e2119e148b",
"sha256:3645e8972e58e94557d2ddf0fa31e9d2b8893356051d60fb9630dd378f316444",
"sha256:adcd94c9d45a1bf52c6639692b598dddf92673ed2ced054dc1491cb1671fdc00",
"sha256:0e7e1a292feb0de373617124562b231077ab32223c76fbf4680a956d7b31317e",
"sha256:5a046e0832785441c1efca92ba8637e033f01ca082d3fba0262fb0d081b71b64",
"sha256:acc9831e8cc09e13b7195745d9771bc0130ae060b33bd1c2c41b99ef5872b852",
"sha256:5bde119615814c37072cbd276747fd25b53c9b76bf55ff412bad05e161282635",
"sha256:14dc4e949d3153ebc5bd239b829a649cbd6d84fa454f2d25d94e236521421ad1",
"sha256:f2a75969578314b53448dee5493e0c5f30f2b0a10c1d6dc0d028f36e3d0033b8",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:ad2820ec32dcc914718079185d50c9cff36b892770f95b91937af64b35c6a2df",
"sha256:e9fcc576a9688f0013a7f49ac8769ec0c34e8c2ccf0d1470b3fb55c4c631b329",
"sha256:032828cef6300aeb8b5324052fccfb49db8a8554cef8c4a8ae162adcb94daf06",
"sha256:600b9756c8cb734f9fed70c6e9dc0015acad510935bc423dfeb8fd5287892e30",
"sha256:b08ec41b62f0eb7a526eff00329ae1c10770daee9e107802a42ab31c54c8e764",
"sha256:376610adb1b8c817d4ccbfe13b0bf5050488dc283877f051d5f272ebda3bfc06",
"sha256:7e7c17a708e41a1dd222a5c792aff1212cf670c3dd2f48095c3c32f98357bb81",
"sha256:a2830c75b4af895ececc0a6c5ff19388a59a8f34d51f81c4ec930322b3034254",
"sha256:61e727c4636bb109d7fc928d8f3244a0af5734d61314eada966f02363b6119f7",
"sha256:09ce9c39c6106a017bbb5cd0e5d4b92c9a149985ae8dc67f70413690435ce287"
]
},
"Metadata": {
"LastTagTime": "2025-12-18T15:52:05.932413777+08:00"
}
}