镜像构建历史
# 2026-05-23 10:04:40 329.00B 执行命令并创建新的镜像层
RUN |1 USE_CHINA_MIRROR=0 /bin/sh -c echo "CREATE EXTENSION IF NOT EXISTS pg_trgm;\nCREATE EXTENSION IF NOT EXISTS zhparser;\nDO\n\$\$BEGIN\n CREATE TEXT SEARCH CONFIGURATION chinese_zh (PARSER = zhparser);\n ALTER TEXT SEARCH CONFIGURATION chinese_zh ADD MAPPING FOR n,v,a,i,e,l,t WITH simple;\nEXCEPTION\n WHEN unique_violation THEN\n NULL; -- ignore error\nEND;\$\$;\n" > /docker-entrypoint-initdb.d/init-zhparser.sql # buildkit
# 2026-05-23 10:04:40 17.30MB 执行命令并创建新的镜像层
RUN |1 USE_CHINA_MIRROR=0 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends apt-transport-https bzip2 ca-certificates curl gcc libc6-dev make && if grep -q "deb-src" /etc/apt/sources.list.d/pgdg.list > /dev/null; then echo "deb [trusted=yes] https://apt.fury.io/abcfy2/ /" >/etc/apt/sources.list.d/fury.list; apt-get update; fi && LIBPQ5_VER="$(dpkg-query --showformat='${Version}' --show libpq5)" && apt-get install -y libpq-dev="${LIBPQ5_VER}" "postgresql-server-dev-${PG_MAJOR}=${PG_VERSION}" && tar xjf /scws-1.2.3.tar.bz2 && ZHPARSER_URL="https://github.com/amutu/zhparser/archive/master.tar.gz" && if [ x"${USE_CHINA_MIRROR}" = x1 ]; then ZHPARSER_URL="https://mirror.ghproxy.com/${ZHPARSER_URL}"; fi && curl -sSkLf "${ZHPARSER_URL}" | tar xzf - && cd scws-1.2.3 && ./configure && make -j$(nproc) install V=0 && cd /zhparser-master && make -j$(nproc) install && apt-get purge -y gcc make libc6-dev curl bzip2 apt-transport-https ca-certificates libpq-dev="${LIBPQ5_VER}" "postgresql-server-dev-${PG_MAJOR}=${PG_VERSION}" && apt-get autoremove --purge -y && apt-get clean && rm -rf /zhparser-master /scws-1.2.3 /etc/apt/sources.list.d/fury.list /var/lib/apt/lists/* # buildkit
# 2026-05-23 09:46:24 0.00B 执行命令并创建新的镜像层
RUN |1 USE_CHINA_MIRROR=0 /bin/sh -c if [ x"${USE_CHINA_MIRROR}" = x1 ]; then for f in /etc/apt/sources.list /etc/apt/sources.list.d/debian.sources; do if [ -f "${f}" ]; then sed -i 's/deb.debian.org/mirror.sjtu.edu.cn/;s/security.debian.org/mirror.sjtu.edu.cn/' "${f}"; fi done && sed -i 's@apt.postgresql.org/pub@mirrors.cloud.tencent.com/postgresql@' /etc/apt/sources.list.d/pgdg.list; fi # buildkit
# 2026-05-23 09:46:24 0.00B 定义构建参数
ARG USE_CHINA_MIRROR=0
# 2026-05-23 09:46:24 485.90KB 复制新文件或目录到容器中
COPY scws-1.2.3.tar.bz2 /scws-1.2.3.tar.bz2 # buildkit
# 2026-05-23 09:46:24 0.00B 添加元数据标签
LABEL org.opencontainers.image.authors=Feng Yu<abcfy2@163.com>
# 2026-05-20 07:18:48 0.00B 设置默认要执行的命令
CMD ["postgres"]
# 2026-05-20 07:18:48 0.00B 声明容器运行时监听的端口
EXPOSE map[5432/tcp:{}]
# 2026-05-20 07:18:48 0.00B 设置停止容器时发送的系统调用信号
STOPSIGNAL SIGINT
# 2026-05-20 07:18:48 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
# 2026-05-20 07:18:48 23.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sT docker-ensure-initdb.sh /usr/local/bin/docker-enforce-initdb.sh # buildkit
# 2026-05-20 07:18:48 16.87KB 复制新文件或目录到容器中
COPY docker-entrypoint.sh docker-ensure-initdb.sh /usr/local/bin/ # buildkit
# 2026-05-20 07:18:48 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/postgresql/data]
# 2026-05-20 07:18:48 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c install --verbose --directory --owner postgres --group postgres --mode 1777 "$PGDATA" # buildkit
# 2026-05-20 07:18:48 0.00B 设置环境变量 PGDATA
ENV PGDATA=/var/lib/postgresql/data
# 2026-05-20 07:18:48 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c install --verbose --directory --owner postgres --group postgres --mode 3777 /var/run/postgresql # buildkit
# 2026-05-20 07:18:48 61.46KB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; dpkg-divert --add --rename --divert "/usr/share/postgresql/postgresql.conf.sample.dpkg" "/usr/share/postgresql/$PG_MAJOR/postgresql.conf.sample"; cp -v /usr/share/postgresql/postgresql.conf.sample.dpkg /usr/share/postgresql/postgresql.conf.sample; ln -sv ../postgresql.conf.sample "/usr/share/postgresql/$PG_MAJOR/"; sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/postgresql/postgresql.conf.sample; grep -F "listen_addresses = '*'" /usr/share/postgresql/postgresql.conf.sample # buildkit
# 2026-05-20 07:18:48 323.66MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex; export PYTHONDONTWRITEBYTECODE=1; dpkgArch="$(dpkg --print-architecture)"; aptRepo="[ signed-by=/usr/local/share/keyrings/postgres.gpg.asc ] http://apt.postgresql.org/pub/repos/apt trixie-pgdg main $PG_MAJOR"; case "$dpkgArch" in amd64 | arm64 | ppc64el) echo "deb $aptRepo" > /etc/apt/sources.list.d/pgdg.list; apt-get update; ;; *) echo "deb-src $aptRepo" > /etc/apt/sources.list.d/pgdg.list; savedAptMark="$(apt-mark showmanual)"; tempDir="$(mktemp -d)"; cd "$tempDir"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev; echo "deb [ trusted=yes ] file://$tempDir ./" > /etc/apt/sources.list.d/temp.list; _update_repo() { dpkg-scanpackages . > Packages; apt-get -o Acquire::GzipIndexes=false update; }; _update_repo; nproc="$(nproc)"; export DEB_BUILD_OPTIONS="nocheck parallel=$nproc"; apt-get build-dep -y postgresql-common-dev; apt-get source --compile postgresql-common-dev; _update_repo; apt-get build-dep -y "postgresql-$PG_MAJOR=$PG_VERSION"; apt-get source --compile "postgresql-$PG_MAJOR=$PG_VERSION"; apt-mark showmanual | xargs apt-mark auto > /dev/null; apt-mark manual $savedAptMark; ls -lAFh; _update_repo; grep '^Package: ' Packages; cd /; ;; esac; apt-get install -y --no-install-recommends postgresql-common; sed -ri 's/#(create_main_cluster) .*$/\1 = false/' /etc/postgresql-common/createcluster.conf; apt-get install -y --no-install-recommends "postgresql-$PG_MAJOR=$PG_VERSION" ; rm -rf /var/lib/apt/lists/*; if [ -n "$tempDir" ]; then apt-get purge -y --auto-remove; rm -rf "$tempDir" /etc/apt/sources.list.d/temp.list; fi; find /usr -name '*.pyc' -type f -exec bash -c 'for pyc; do dpkg -S "$pyc" &> /dev/null || rm -vf "$pyc"; done' -- '{}' +; postgres --version # buildkit
# 2026-05-20 07:17:47 0.00B 设置环境变量 PG_VERSION
ENV PG_VERSION=16.14-1.pgdg13+1
# 2026-05-20 07:17:47 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/16/bin
# 2026-05-20 07:17:47 0.00B 设置环境变量 PG_MAJOR
ENV PG_MAJOR=16
# 2026-05-20 07:17:47 3.98KB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex; key='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8'; export GNUPGHOME="$(mktemp -d)"; mkdir -p /usr/local/share/keyrings/; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; gpg --batch --export --armor "$key" > /usr/local/share/keyrings/postgres.gpg.asc; gpgconf --kill all; rm -rf "$GNUPGHOME" # buildkit
# 2026-05-20 07:17:46 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir /docker-entrypoint-initdb.d # buildkit
# 2026-05-20 07:17:46 3.31MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends libnss-wrapper xz-utils zstd ; rm -rf /var/lib/apt/lists/* # buildkit
# 2026-05-20 07:17:43 0.00B 设置环境变量 LANG
ENV LANG=en_US.utf8
# 2026-05-20 07:17:43 25.59MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; if [ -f /etc/dpkg/dpkg.cfg.d/docker ]; then grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; sed -ri '/\/usr\/share\/locale/d' /etc/dpkg/dpkg.cfg.d/docker; ! grep -q '/usr/share/locale' /etc/dpkg/dpkg.cfg.d/docker; fi; apt-get update; apt-get install -y --no-install-recommends locales; rm -rf /var/lib/apt/lists/*; echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen; locale-gen; locale -a | grep 'en_US.utf8' # buildkit
# 2026-05-20 07:17:37 3.69MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates wget; rm -rf /var/lib/apt/lists/*; dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; gpgconf --kill all; rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; chmod +x /usr/local/bin/gosu; gosu --version; gosu nobody true # buildkit
# 2026-05-20 07:17:37 0.00B 设置环境变量 GOSU_VERSION
ENV GOSU_VERSION=1.19
# 2026-05-20 07:17:29 16.82MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -ex; apt-get update; apt-get install -y --no-install-recommends gnupg less ; rm -rf /var/lib/apt/lists/* # buildkit
# 2026-05-20 07:17:24 4.32KB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; groupadd -r postgres --gid=999; useradd -r -g postgres --uid=999 --home-dir=/var/lib/postgresql --shell=/bin/bash postgres; install --verbose --directory --owner postgres --group postgres --mode 1777 /var/lib/postgresql # buildkit
# 2026-05-18 08:00:00 100.49MB
# debian.sh --arch 'arm64' out/ 'trixie' '@1779062400'
镜像信息
{
"Id": "sha256:57289868cc7ef3c2d0ae15e7477520c1f842c44d2fe03a85855a26bfe52d397f",
"RepoTags": [
"abcfy2/zhparser:16",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/abcfy2/zhparser:16-linuxarm64"
],
"RepoDigests": [
"abcfy2/zhparser@sha256:9292271bd2059a923f48a509dd09daa710f12901d8924816d7b53a669844a10a",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/abcfy2/zhparser@sha256:a621d5107d269d6d2754830aa40379ac3dddc8c663357844d5ebce9d1efbb25f"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-05-23T02:04:40.778577548Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"5432/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/16/bin",
"GOSU_VERSION=1.19",
"LANG=en_US.utf8",
"PG_MAJOR=16",
"PG_VERSION=16.14-1.pgdg13+1",
"PGDATA=/var/lib/postgresql/data"
],
"Cmd": [
"postgres"
],
"Image": "",
"Volumes": {
"/var/lib/postgresql/data": {}
},
"WorkingDir": "",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.authors": "Feng Yu\u003cabcfy2@163.com\u003e"
},
"StopSignal": "SIGINT"
},
"Architecture": "arm64",
"Os": "linux",
"Size": 491444483,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/fbb3634eae238c294d4cc38e9cd77f44ec36d7c794eb949f1ffaddde17e342d3/diff:/var/lib/docker/overlay2/aff3ec2017d5311af0b3089364059b07528a79a7fdba4c8d6224f0bb6e8b3ded/diff:/var/lib/docker/overlay2/91da201c9471da3177f4654cc4abf05c6906fb532d4ec53baa5d49f3023716c6/diff:/var/lib/docker/overlay2/8b74595ff49c7ec6e8b8e2c239e3d1eb8be8519d6a2d7de37a57eb1de22cecfc/diff:/var/lib/docker/overlay2/72d0bacd41e444ae14dcfa8c969e6e4c14744f7e7aa1d26c9102b7b9b8bb04a5/diff:/var/lib/docker/overlay2/e8ad7ba1b686f6363353e8ccaf30058f35c5843f4545a713ca71b54a956771a1/diff:/var/lib/docker/overlay2/964c7a577d4873995ac52d103539c9728d72d315279b3b1112d65f5f7bcf7b6f/diff:/var/lib/docker/overlay2/74ceef405ea385ac0e7fdcb35f669a0a66b6417588cba6ab8d0cb42a703c73a1/diff:/var/lib/docker/overlay2/edf8263918693411e144f48b8807f6d8fddc5c78b95c405ca398e66310f0cd0d/diff:/var/lib/docker/overlay2/2942cbac88a469f2143c11dc3429bbc821ca2008764a11b9f6fba6245e4530c7/diff:/var/lib/docker/overlay2/fd482f513e9a528420cb8ab2e35ba79b1ce89761417701fe35de686a9e02a4e7/diff:/var/lib/docker/overlay2/cb912a15d601ec928516f82d040f071deb307b09a7220b106d5668fd6fc213a3/diff:/var/lib/docker/overlay2/3ef80bf7a1874a31cd6948625512f111245f239ef4dc48879991fdfb2d67bf4f/diff:/var/lib/docker/overlay2/6833047f5f8047c9e2bb21628b5daed096babed0c939d0bc18115b3c1b439b74/diff:/var/lib/docker/overlay2/8db11f3fc50ae25d350a17cd04c699b0695a3299dac9135ef9cb4cb0aa84641d/diff:/var/lib/docker/overlay2/9591a7cc73aa29455b8a322977c521fda306db7cabe2bc85b9be2c1c2cd57543/diff:/var/lib/docker/overlay2/cebab4f08935fe394feafdc1cb3b5232f5e42bc3a905a3a598f6725628f64957/diff",
"MergedDir": "/var/lib/docker/overlay2/fd99190f54d49630215d493b7f6f15534af86fafe349280ca5b79032df46f585/merged",
"UpperDir": "/var/lib/docker/overlay2/fd99190f54d49630215d493b7f6f15534af86fafe349280ca5b79032df46f585/diff",
"WorkDir": "/var/lib/docker/overlay2/fd99190f54d49630215d493b7f6f15534af86fafe349280ca5b79032df46f585/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:0f0c47d76d9eb2be2ad0e5d15813906c7c4d32fa5a098b4a456208142516bab4",
"sha256:8952c88ad998d426447ba4d0f5be14e9f11c419cf57db1e7832ced5d8edd21d8",
"sha256:a5069148f5581409f2d1a2a3e1d2e9b6cf2f88307309b8ee22b76dfd38c34210",
"sha256:ef944161bc622eb558f49d58140b8b9172e40fa0596a46042418b0a568396cbe",
"sha256:cbd78d939b5f1a8a3d5c293d1039ff4b05fb4b2f042791c1d5f66a9ff2f64fd0",
"sha256:276168b2a8392fc72e1b9c620702881e21720102f80ba75b28f0691288ed974a",
"sha256:83c85000630c41bc197d3e7aec0fc742344eb95217477123f39e6c0d24806c20",
"sha256:a2b231ea8cd41bc2242f209e884ddb8a837c9947069ae1570a9ee0524a5eb328",
"sha256:4a4b2c29274a230c1d1a29a451f9f948cc2036fe90daa9225383c324227e434b",
"sha256:69da103d27efea646716e359b2af43c7e41b5de3648ff997c608f894757ad120",
"sha256:c0f2b704f4de44bccf0a6a9c0f3a84de8d4048e219063f621abe6db24206814b",
"sha256:db353b58df66c806b31d750d678cc0fe449cb1f6726a1745196a0612a8709323",
"sha256:ea7c07fd6134f1aa9d30c808decdbe36fadedd213dfd5b18cc0f5fb00d4ea4da",
"sha256:8932a5d222dd6a771712420f7de1c162c8875321dca9ce1fdba11bda0ef6ed02",
"sha256:95e3ba9ba49567d7a838ce8dfb3847af675713de4378888d79d52b33bbfa5ea1",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:260e68e27d18f5c74266c90a2d64de2030d84db8f6e810c36b3107655b1f0fff",
"sha256:c1a0bbefec6a50b4e845c63f9c7f0ed1348e5a2fff606525c0ca1b8382374f7b"
]
},
"Metadata": {
"LastTagTime": "2026-06-12T18:14:04.292455203+08:00"
}
}