镜像构建历史
# 2026-05-01 08:46:14 664.68MB 执行命令并创建新的镜像层
RUN |3 DEBIAN_RELEASE=bookworm PG_MAJOR=15 DISCOURSE_BRANCH=main /bin/sh -c cd /var/www/discourse && sudo -u discourse /bin/bash -c 'if [ -f yarn.lock ]; then yarn install --frozen-lockfile && yarn cache clean; else pnpm install --frozen-lockfile; fi' # buildkit
# 2026-05-01 08:46:04 815.76MB 执行命令并创建新的镜像层
RUN |3 DEBIAN_RELEASE=bookworm PG_MAJOR=15 DISCOURSE_BRANCH=main /bin/sh -c cd /var/www/discourse && sudo -u discourse bundle config --local deployment true && sudo -u discourse bundle config --local path ./vendor/bundle && sudo -u discourse bundle config --local without test development && sudo -u discourse bundle install --jobs $(($(nproc) - 1)) && find /var/www/discourse/vendor/bundle -name cache -not -path '*/gems/*' -type d -exec rm -rf {} + && find /var/www/discourse/vendor/bundle -name tmp -type d -exec rm -rf {} + # buildkit
# 2026-05-01 08:44:56 0.00B 设置环境变量 RAILS_ENV
ENV RAILS_ENV=production
# 2026-05-01 08:44:56 274.05MB 执行命令并创建新的镜像层
RUN |3 DEBIAN_RELEASE=bookworm PG_MAJOR=15 DISCOURSE_BRANCH=main /bin/sh -c install -dm 0755 -o discourse -g discourse /var/www/discourse && sudo -u discourse git clone --branch $DISCOURSE_BRANCH --filter=tree:0 https://github.com/discourse/discourse.git /var/www/discourse # buildkit
# 2026-05-01 08:44:06 0.00B 定义构建参数
ARG DISCOURSE_BRANCH=main
# 2026-05-01 08:44:06 636.00B 复制新文件或目录到容器中
COPY sbin/ /sbin # buildkit
# 2026-05-01 08:44:06 954.00B 复制新文件或目录到容器中
COPY etc/ /etc # buildkit
# 2026-05-01 08:44:05 0.00B 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c rm -f /etc/service # buildkit
# 2026-05-01 08:44:05 16.22KB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c gcc -o /usr/local/sbin/thpoff /src/thpoff.c && rm /src/thpoff.c # buildkit
# 2026-05-01 08:44:05 910.00B 复制文件或目录到容器中
ADD thpoff.c /src/thpoff.c # buildkit
# 2026-05-01 08:44:05 78.52KB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c gem install pups --force && mkdir -p /pups/bin/ && ln -s /usr/local/bin/pups /pups/bin/pups # buildkit
# 2026-05-01 08:44:04 4.78MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c /tmp/install-oxipng # buildkit
# 2026-05-01 08:44:01 1.17KB 复制文件或目录到容器中
ADD install-oxipng /tmp/install-oxipng # buildkit
# 2026-05-01 08:44:01 1.04KB 复制文件或目录到容器中
ADD install-redis /tmp/install-redis # buildkit
# 2026-05-01 08:44:01 7.23MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c /tmp/install-jemalloc # buildkit
# 2026-05-01 08:43:38 1.94KB 复制文件或目录到容器中
ADD install-jemalloc /tmp/install-jemalloc # buildkit
# 2026-05-01 08:43:38 252.00B 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c ln -s /usr/local/bin/magick /usr/local/bin/animate && ln -s /usr/local/bin/magick /usr/local/bin/compare && ln -s /usr/local/bin/magick /usr/local/bin/composite && ln -s /usr/local/bin/magick /usr/local/bin/conjure && ln -s /usr/local/bin/magick /usr/local/bin/convert && ln -s /usr/local/bin/magick /usr/local/bin/display && ln -s /usr/local/bin/magick /usr/local/bin/identify && ln -s /usr/local/bin/magick /usr/local/bin/import && ln -s /usr/local/bin/magick /usr/local/bin/magick-script && ln -s /usr/local/bin/magick /usr/local/bin/mogrify && ln -s /usr/local/bin/magick /usr/local/bin/montage && ln -s /usr/local/bin/magick /usr/local/bin/stream && test $(magick -version | grep -o -e png -e tiff -e jpeg -e freetype -e heic -e webp | wc -l) -eq 6 # buildkit
# 2026-05-01 08:43:38 110.50KB 复制新文件或目录到容器中
COPY /usr/local/share/ImageMagick-7 /usr/local/share/ImageMagick-7 # buildkit
# 2026-05-01 08:43:38 255.22KB 复制新文件或目录到容器中
COPY /usr/local/etc/ImageMagick-7 /usr/local/etc/ImageMagick-7 # buildkit
# 2026-05-01 08:43:38 6.30MB 复制新文件或目录到容器中
COPY /usr/local/bin/magick /usr/local/bin/magick # buildkit
# 2026-05-01 08:43:30 7.36MB 复制新文件或目录到容器中
COPY /usr/sbin/nginx /usr/sbin # buildkit
# 2026-05-01 08:43:14 20.26MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c npm install -g pnpm@10 # buildkit
# 2026-05-01 08:43:13 3.06MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c sed -i "s/^# $LANG/$LANG/" /etc/locale.gen; locale-gen # buildkit
# 2026-05-01 08:43:12 0.00B 设置环境变量 LANGUAGE
ENV LANGUAGE=en_US.UTF-8
# 2026-05-01 08:43:12 0.00B 设置环境变量 LANG
ENV LANG=en_US.UTF-8
# 2026-05-01 08:43:12 0.00B 设置环境变量 LC_ALL
ENV LC_ALL=en_US.UTF-8
# 2026-05-01 08:43:12 929.77MB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c echo "debconf debconf/frontend select Teletype" | debconf-set-selections; apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install gnupg sudo curl fping locales ca-certificates rsync cmake g++ pkg-config patch libxslt-dev libcurl4-openssl-dev libssl-dev libyaml-dev libtool libpcre3 libpcre3-dev zlib1g zlib1g-dev libxml2-dev gawk parallel libreadline-dev anacron wget psmisc whois brotli libunwind-dev libtcmalloc-minimal4 cmake pngcrush pngquant ripgrep poppler-utils ghostscript libjbig0 libtiff6 libpng16-16 libfontconfig1 libwebpdemux2 libwebpmux3 libxext6 librsvg2-2 libgomp1 fonts-urw-base35 libheif1/${DEBIAN_RELEASE}-backports nginx-common && DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends git rsyslog logrotate cron ssh-client less; install -d /usr/share/postgresql-common/pgdg && curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc && 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; curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -; echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list; curl --silent --location https://deb.nodesource.com/setup_22.x | sudo bash -; sed -i -e 's/start -q anacron/anacron -s/' /etc/cron.d/anacron; sed -i.bak 's/$ModLoad imklog/#$ModLoad imklog/' /etc/rsyslog.conf; sed -i.bak 's/module(load="imklog")/#module(load="imklog")/' /etc/rsyslog.conf; dpkg-divert --local --rename --add /sbin/initctl; sh -c "test -f /sbin/initctl || ln -s /bin/true /sbin/initctl"; apt-get -y update && DEBIAN_FRONTEND=noninteractive apt-get -y install runit socat libpq-dev postgresql-client-${PG_MAJOR} nodejs yarn && mkdir -p /etc/runit/1.d # buildkit
# 2026-05-01 08:42:29 57.00B 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c echo "deb http://deb.debian.org/debian ${DEBIAN_RELEASE}-backports main" > "/etc/apt/sources.list.d/${DEBIAN_RELEASE}-backports.list" # buildkit
# 2026-05-01 08:42:29 13.00B 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c echo 2.0.`date +%Y%m%d` > /VERSION # buildkit
# 2026-05-01 08:42:29 9.40KB 执行命令并创建新的镜像层
RUN |2 DEBIAN_RELEASE=bookworm PG_MAJOR=15 /bin/sh -c groupadd --gid 104 postgres && useradd --uid 101 --gid 104 --home /var/lib/postgresql --shell /bin/bash -c "PostgreSQL administrator,,," postgres && groupadd --gid 106 redis && useradd --uid 103 --gid 106 --home /var/lib/redis --shell /usr/sbin/nologin redis && groupadd --gid 1000 discourse && useradd --uid 1000 --gid 1000 -m --shell /bin/bash discourse # buildkit
# 2026-05-01 08:42:29 0.00B 设置环境变量 PG_MAJOR RUBY_ALLOCATOR LEFTHOOK DEBIAN_RELEASE
ENV PG_MAJOR=15 RUBY_ALLOCATOR=/usr/lib/libjemalloc.so LEFTHOOK=0 DEBIAN_RELEASE=bookworm
# 2026-05-01 08:42:29 0.00B 定义构建参数
ARG PG_MAJOR=15
# 2026-05-01 08:42:29 0.00B 定义构建参数
ARG DEBIAN_RELEASE=bookworm
# 2026-04-30 08:29:04 118.50MB 执行命令并创建新的镜像层
RUN |1 RUBY_VERSION=3.4.9 /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends bzip2 ca-certificates libgmp-dev libssl-dev libyaml-dev procps zlib1g-dev ; mkdir -p /usr/local/etc; { echo 'install: --no-document'; echo 'update: --no-document'; } >> /usr/local/etc/gemrc; savedAptMark="$(apt-mark showmanual)"; apt-get install -y --no-install-recommends git dpkg-dev libgdbm-dev ruby autoconf g++ gcc libbz2-dev libgdbm-compat-dev libglib2.0-dev libncurses-dev libxml2-dev libxslt-dev make wget xz-utils ; rustArch=; dpkgArch="$(dpkg --print-architecture)"; case "$dpkgArch" in 'amd64') rustArch='x86_64-unknown-linux-gnu'; rustupUrl='https://static.rust-lang.org/rustup/archive/1.26.0/x86_64-unknown-linux-gnu/rustup-init'; rustupSha256='0b2f6c8f85a3d02fde2efc0ced4657869d73fccfce59defb4e8d29233116e6db' ;; 'arm64') rustArch='aarch64-unknown-linux-gnu'; rustupUrl='https://static.rust-lang.org/rustup/archive/1.26.0/aarch64-unknown-linux-gnu/rustup-init'; rustupSha256='673e336c81c65e6b16dcdede33f4cc9ed0f08bde1dbe7a935f113605292dc800' ;; *) echo >&2 "unsupported architecture: ${dpkgArch}"; exit 1 ;; esac; mkdir -p /tmp/rust; wget -O /tmp/rust/rustup-init "$rustupUrl"; echo "$rustupSha256 */tmp/rust/rustup-init" | sha256sum --check --strict; chmod +x /tmp/rust/rustup-init; export RUSTUP_HOME='/tmp/rust/rustup' CARGO_HOME='/tmp/rust/cargo'; export PATH="$CARGO_HOME/bin:$PATH"; /tmp/rust/rustup-init -y --no-modify-path --profile minimal --default-toolchain '1.77.0' --default-host "$rustArch"; rustc --version; cargo --version; mkdir /src; git -C /src clone https://github.com/rbenv/ruby-build.git; cd /src/ruby-build && ./install.sh; cd / && rm -fr /src; export RUSTUP_HOME='/tmp/rust/rustup' CARGO_HOME='/tmp/rust/cargo'; export PATH="$CARGO_HOME/bin:$PATH"; CONFIGURE_OPTS="--disable-install-doc --enable-yjit" ruby-build ${RUBY_VERSION} /usr/local; rm -rf /tmp/rust; rm -rf /usr/local/bin/ruby-build; rm -rf /var/lib/apt/lists/*; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", 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; if dpkg -l | grep -i ruby; then exit 1; fi; [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; bundle config build.ffi --disable-system-libffi; ruby --version; gem --version; bundle --version # buildkit
# 2026-04-30 08:29:04 0.00B 设置环境变量 RUBY_VERSION
ENV RUBY_VERSION=3.4.9
# 2026-04-30 08:29:04 0.00B 定义构建参数
ARG RUBY_VERSION=3.4.9
# 2026-04-21 08:00:00 74.83MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1776729600'
镜像信息
{
"Id": "sha256:55a89eb557cbedae2567364115042f0007c26fabc855d23a8ff7ef91f3a9d563",
"RepoTags": [
"discourse/base:2.0.20260501-0042-web-only",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/discourse/base:2.0.20260501-0042-web-only"
],
"RepoDigests": [
"discourse/base@sha256:dad9b9e78832563252f6c36a83a0b068278e10206634947a295cb8628f045c1c",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/discourse/base@sha256:f99eafcc7ee82301c2dda73a5b77d3a13fc62dcbcbdfc2ef2a5f31e2a4761d84"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-05-01T00:46:14.405757886Z",
"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",
"RUBY_VERSION=3.4.9",
"PG_MAJOR=15",
"RUBY_ALLOCATOR=/usr/lib/libjemalloc.so",
"LEFTHOOK=0",
"DEBIAN_RELEASE=bookworm",
"LC_ALL=en_US.UTF-8",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US.UTF-8",
"RAILS_ENV=production"
],
"Cmd": [
"bash"
],
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 2927028978,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/8a70d88f9b4156ca21dfcea679a107097bd06088f8661120306b2883069d477a/diff:/var/lib/docker/overlay2/f0edfd60205743e1bb5156e810d46bc1dbcd3b943b7b19bfb04528df1ededbc4/diff:/var/lib/docker/overlay2/361ff0345f403a16fbedebca0d258d4828fab7022d9a1bf197f3cfd2c5877be7/diff:/var/lib/docker/overlay2/3fdb4831fa4558852ee4d8e0f081e6192ffbaa4c5647ade5f74112ea8359d742/diff:/var/lib/docker/overlay2/7049fcd984fdb8285aa2a59f351be58c91e3be5168c7a205c30c0e5fb2dcf315/diff:/var/lib/docker/overlay2/efde2eec21426d4910b09b6b9bea922289146900d4e2d4b3a214114233efa9b0/diff:/var/lib/docker/overlay2/21e39d95839821d9185bd658e53e3a9321a2d2bad77515a68e43f48d2600171a/diff:/var/lib/docker/overlay2/0813f4193ca3bb9ba15efef58a2156d4e685f53eed9762d6900594aa54dbc34a/diff:/var/lib/docker/overlay2/e0f38acc1e86986973b3218b471df00e12911b81de7cc99e7f832e6811b9dd94/diff:/var/lib/docker/overlay2/72d0b4064c599d7aebe8e2d681b9deb861c66ff0c2ff09e13d26e4b997cc1d80/diff:/var/lib/docker/overlay2/fb00dc7af3d348ad436c52c1f4722448265d27288e1315e73485794582457c54/diff:/var/lib/docker/overlay2/efa1c16695c1da2e44b05ee59e3a1ca4101845b7125b595cfcdef0ab45686e52/diff:/var/lib/docker/overlay2/5c41140bc67e7fe256085bd8ea01a75fa1b86adf1390437b03f6b340fdafcc47/diff:/var/lib/docker/overlay2/fc3d7dcb148dee2a851ef513471201cadffb8d5ab89f5a437616c45278a2826e/diff:/var/lib/docker/overlay2/1883d3f2369db834bfac833e20272bddf473438a9ce8e2536bf7498e9280556c/diff:/var/lib/docker/overlay2/bad35728e53812dbbdc69d675b14cfba7b6384a64047600c0644aec4e0f4dd7c/diff:/var/lib/docker/overlay2/e806dce7d6df6dd4f4a95de59f79a6e2b255b54f3f4827660b4915ca78990459/diff:/var/lib/docker/overlay2/bdd99117183fcdc347909d01efad9557eb2d89e9b9b615d771811dabd8de2592/diff:/var/lib/docker/overlay2/694b70045abfbfade91d40244f4acb5cda0e4da19bd00e43191aef0c342f7b18/diff:/var/lib/docker/overlay2/e390e4c0776a15c9b723cf86d0b56d0317a68499a256e74243f62ee760131f42/diff:/var/lib/docker/overlay2/d478691a300707647d8234a7fb2bd82715308833fc4b4bf11eba5cb8206a700f/diff:/var/lib/docker/overlay2/efc813c48443dee0e8a60481062cdf353111e00650956022911a19d952ec676f/diff:/var/lib/docker/overlay2/98e09d7e92dfefa5a260ded34a3f70b74a4b78bed8c353d7089db227b3ff3e83/diff:/var/lib/docker/overlay2/8da51dddb8152afd8da44be28cf195788d59389881a431b572b239a0fab94e04/diff:/var/lib/docker/overlay2/d353027e5fe1058021b7dd3e3eb3146972955d528b9e45ca5fa737416dd48a74/diff:/var/lib/docker/overlay2/cf43f95bbd2394100154831c0af08fee9aac29e6f0ad6ee1ddfcd2e2dfd607a9/diff",
"MergedDir": "/var/lib/docker/overlay2/cb29174f79325e70ffe44250aa768d7cd2f9981029561974dab7710cbd698fe5/merged",
"UpperDir": "/var/lib/docker/overlay2/cb29174f79325e70ffe44250aa768d7cd2f9981029561974dab7710cbd698fe5/diff",
"WorkDir": "/var/lib/docker/overlay2/cb29174f79325e70ffe44250aa768d7cd2f9981029561974dab7710cbd698fe5/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:0da811fd3ed46c38cea69079fa395a3d715dbdbdd5c8177107c450bf6332bbfa",
"sha256:f30aca67387243e4cab428b73a6689cd7ec1aa32d95ee5df358f64e39aa14d4a",
"sha256:cfd76501995b4fd4829323e74ddb9709422284810348c4303d5998b1c7f6b938",
"sha256:46594221bbafbcaa2aa37f11bc506b04fd4989b45be13553c9458de9aee2f494",
"sha256:5b63991e348899ff3e5e7f97bc6256539f5ef6550821652c7990534f844f14d5",
"sha256:7372d719b760857c0795bb4288dfc77a33f5fd4406caea092b412daa4ea9dfa8",
"sha256:b3392e5e3c9b9555a4a803d3a09e1d94224ec668b3c4134d7f5b0aac135b82bd",
"sha256:63130c32e24debfa1d250805a8543d50fd373f9b344453e2dbb0d2e6484d5a54",
"sha256:595b6547fa455c866031df7a4c77a45699eb05502563e3d6f578273bb813a3d5",
"sha256:931c19f3b11106c594f91834886870769eddfd1092b040031cc85217cdefaafc",
"sha256:1b4f83b6127716e8deb852e9c4238133ff08047b3d832c5e21bfcc092dc8492c",
"sha256:7cfd74821f74054998b99b612a6404356a0b8340c6388cfe2413c5ea77ce1c7a",
"sha256:94fa01efa913216a08a4ddf1454e1853cc104feca71eca44f5dc3ab93c9510bd",
"sha256:5ce9744de265296baa1e6aa582a667f2e58005ee58e038376606c36644d11f89",
"sha256:0e7c414231930b0dad0549c0402f306767ffdeb987c43eae2be7909bff8891b4",
"sha256:4ee52ca339729fc2734c7408d5e7fdf8b53e518797e0ba97f7893f07e071a5fa",
"sha256:76251e75fdc2736fca4c3df70994d41a8227bb9bcd30978396ea79e9e593c47d",
"sha256:2b7004e0d27c76ec8f7d3553e4414e52a76ef4401cd4611a245c2e87716f4402",
"sha256:6b3610ef8329dffc98be2c2dcac87eacb5c74e483cfe8aceff7c2b4a0f9b8bb4",
"sha256:f2c9108f13061318d60c0e4c5ff66c0e021fbd363e5fe0ec02e1ae017ae9df96",
"sha256:3ad4ac5f492899a5b295c59c495f2342e2cab2115e6d3202744f66a328103d86",
"sha256:527805d82bd9db156abdfdb0805711757539eb04945f3492d1689fd3598be728",
"sha256:3d80d96e9542c6bb770b2da1a307bfe482c3e9e3ba2e934be5cce16ed4e7716a",
"sha256:9271d9b3106efd37a199a5e5a9d8c5edacf2e177388bbca449ac16540ea1852e",
"sha256:6707a410a7ded53c4bdc305e38c209590e02c94f61c15fe5c5a9bf139bbd4949",
"sha256:d110ec3b72fa94d98b044df406a84d37268f012c7c6e22c1af212d83c4c5115e",
"sha256:c688f316aa56311f6637dbb7ade60683dd870d92dee627f9520051543e6ecce4"
]
},
"Metadata": {
"LastTagTime": "2026-05-01T21:45:13.704032509+08:00"
}
}