镜像构建历史
# 2026-03-07 09:17:00 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-03-07 09:17:00 17.10MB 执行命令并创建新的镜像层
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-03-07 09:15:31 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-03-07 09:15:30 0.00B 定义构建参数
ARG USE_CHINA_MIRROR=0
# 2026-03-07 09:15:30 485.90KB 复制新文件或目录到容器中
COPY scws-1.2.3.tar.bz2 /scws-1.2.3.tar.bz2 # buildkit
# 2026-03-07 09:15:30 0.00B 添加元数据标签
LABEL org.opencontainers.image.authors=Feng Yu<abcfy2@163.com>
# 2026-02-27 03:22:48 0.00B 设置默认要执行的命令
CMD ["postgres"]
# 2026-02-27 03:22:48 0.00B 声明容器运行时监听的端口
EXPOSE map[5432/tcp:{}]
# 2026-02-27 03:22:48 0.00B 设置停止容器时发送的系统调用信号
STOPSIGNAL SIGINT
# 2026-02-27 03:22:48 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
# 2026-02-27 03:22:48 23.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sT docker-ensure-initdb.sh /usr/local/bin/docker-enforce-initdb.sh # buildkit
# 2026-02-27 03:22:48 16.36KB 复制新文件或目录到容器中
COPY docker-entrypoint.sh docker-ensure-initdb.sh /usr/local/bin/ # buildkit
# 2026-02-27 03:22:47 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/postgresql]
# 2026-02-27 03:22:47 0.00B 设置环境变量 PGDATA
ENV PGDATA=/var/lib/postgresql/18/docker
# 2026-02-27 03:22:47 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c install --verbose --directory --owner postgres --group postgres --mode 3777 /var/run/postgresql # buildkit
# 2026-02-27 03:22:47 66.59KB 执行命令并创建新的镜像层
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-02-27 03:22:47 328.98MB 执行命令并创建新的镜像层
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" ; if apt-get install -s "postgresql-$PG_MAJOR-jit" > /dev/null 2>&1; then apt-get install -y --no-install-recommends "postgresql-$PG_MAJOR-jit=$PG_VERSION"; fi; 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-02-27 03:22:32 0.00B 设置环境变量 PG_VERSION
ENV PG_VERSION=18.3-1.pgdg13+1
# 2026-02-27 03:22:32 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/18/bin
# 2026-02-27 03:22:32 0.00B 设置环境变量 PG_MAJOR
ENV PG_MAJOR=18
# 2026-02-27 03:22:32 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-02-27 03:22:32 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir /docker-entrypoint-initdb.d # buildkit
# 2026-02-27 03:22:32 3.38MB 执行命令并创建新的镜像层
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-02-27 03:22:28 0.00B 设置环境变量 LANG
ENV LANG=en_US.utf8
# 2026-02-27 03:22:28 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-02-27 03:22:23 3.63MB 执行命令并创建新的镜像层
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-02-27 03:22:23 0.00B 设置环境变量 GOSU_VERSION
ENV GOSU_VERSION=1.19
# 2026-02-27 03:22:16 15.86MB 执行命令并创建新的镜像层
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-02-27 03:22:11 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-02-23 08:00:00 78.62MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1771804800'
镜像信息
{
"Id": "sha256:1f5fb82ae9e7b76c8dd972696e9e42dfd2ff2c51f4d8cefc3a46a08465203082",
"RepoTags": [
"abcfy2/zhparser:18",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/abcfy2/zhparser:18"
],
"RepoDigests": [
"abcfy2/zhparser@sha256:6ee91f0b900822962f672448bcb2bde55ab93f6572f3e1067fdaf8212f58928d",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/abcfy2/zhparser@sha256:1ea35a8b2b01095ba946043d13f3f2cf9738c7c3989792763e98beb8167e96f9"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-03-07T01:17:00.67500972Z",
"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/18/bin",
"GOSU_VERSION=1.19",
"LANG=en_US.utf8",
"PG_MAJOR=18",
"PG_VERSION=18.3-1.pgdg13+1",
"PGDATA=/var/lib/postgresql/18/docker"
],
"Cmd": [
"postgres"
],
"Image": "",
"Volumes": {
"/var/lib/postgresql": {}
},
"WorkingDir": "",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.authors": "Feng Yu\u003cabcfy2@163.com\u003e"
},
"StopSignal": "SIGINT"
},
"Architecture": "amd64",
"Os": "linux",
"Size": 473739054,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/39f3b93330e1a25d20c8bfc363ab713c7fde94ff79ea1d27f85e2ab6b1e5b2fe/diff:/var/lib/docker/overlay2/cffdb95c39409d150de1a7ea5949cebf72f1ee246fa2d303b949c9da5ab709de/diff:/var/lib/docker/overlay2/fc0a9d17a95ebb733a99669734d1ecc285cab24f2101b2621afce69f4b0f24f5/diff:/var/lib/docker/overlay2/fc2a06aedc20facf4506be7a1de138c66865ecb780a3afc708d7168870056721/diff:/var/lib/docker/overlay2/f1369fed93b866b5aaf6fd1980881dae6d7a3166e5559172503771538bee9e7c/diff:/var/lib/docker/overlay2/6a0c7db63f983f3b832b8f8d60b0ef90d55e28ffba026a7cfa89f7d2a049feee/diff:/var/lib/docker/overlay2/d7e5df4d444d3c3c70188f59e323cc9cbef78173cab6c267ced114f278532799/diff:/var/lib/docker/overlay2/7c3c16642a9d09276e667d05493cadec0758d42f536549f15469a848ae8f7b7c/diff:/var/lib/docker/overlay2/06958b5ad4e51af54d7e6fa2813129ca3718c71cbdd561fd63e026e71bb2fa6b/diff:/var/lib/docker/overlay2/69ff54b509026c05923356c6c1e994f1b74ea7d79f97f8869984a85b37352953/diff:/var/lib/docker/overlay2/878b1bef59b7d7aa2b7b45899cfb78dd288db5e073f27abca7ce0ac8d5d98f0a/diff:/var/lib/docker/overlay2/d6ee45979d1cd8725f4d828b980f28387043afcae12cad0f7f178ce40857ee7e/diff:/var/lib/docker/overlay2/03c8e3b46f1f7cb56a30c6226b63c1fbf006c5c743b940b5162cd7f6c1e82436/diff:/var/lib/docker/overlay2/09563c5e23c194fd8c49f9b88688f0101dce3c65142311228a02256301c72e71/diff:/var/lib/docker/overlay2/a9b13f72c2aa70c88a89d7cbb1b20eb35d284f09ea37e6e35d1559f7c0a03f8b/diff:/var/lib/docker/overlay2/3e7fffff06b9cf6ebc4360483530626f5f260fc3c63bf57faa15646d948b2a72/diff",
"MergedDir": "/var/lib/docker/overlay2/6112dbd789a3d043f160aa253d09d11826dc8a7f01b5e9cb58b4afa03502e5eb/merged",
"UpperDir": "/var/lib/docker/overlay2/6112dbd789a3d043f160aa253d09d11826dc8a7f01b5e9cb58b4afa03502e5eb/diff",
"WorkDir": "/var/lib/docker/overlay2/6112dbd789a3d043f160aa253d09d11826dc8a7f01b5e9cb58b4afa03502e5eb/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:a257f20c716c7b5d0474b1b5998f4d1090b573d90b82f764b8f1f1faeb4b524f",
"sha256:65a9dfafe1e918fd45e50753409ed67598122c528d86f53844d89dca0620d0e0",
"sha256:205d2687dbd2990bdd4bd1029561e211b086ad7156977cb2dfe6ccfe04b01116",
"sha256:e880ce9745dcfeec9ad2ae23cc54f35ee702413505b3bcb46bce0a538acf9820",
"sha256:3b1c9dbdadd061860d796d8fa42d97ce73556e35cbe92d8dd9e2a0a461924e21",
"sha256:576d705fb6c2c433e9a9aa06d0afbf065f12ac8b1232492123683e5057e5ab2f",
"sha256:6513d40b3a18a193675b6ad6c9f783cf49497c860456c9f7974826a77c75a6c2",
"sha256:6b326a7e6ea2726bb535f0b52a255d4b568c30a5a02793c157fe15c875c00069",
"sha256:d06080f1c531b359e19823c823a0136d3bc732deedc9bedc22a3ee90ee9d67f1",
"sha256:8091364269e7a01483371a62873b00c83183a067c09b2cb32970c85d24d9ce85",
"sha256:65ca778a40661e53689b2a6fa71c8905b1cbeb51ff7fc8271b7fe3bdbe685c2e",
"sha256:b5060dd8a42b14fac11817cef9411b85ec3a5309cb4a7776c78f8d6b891ca70d",
"sha256:52de3a8a6bcb91a4bb009c9ab3ed89a24261f650a873d4ee372ec588542c5cff",
"sha256:92b46316e65e86e37245cfdb03a312bd869d6d9420f295c569de3f9bc108a132",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:ad17ba67279b501b1c7d898f082487d3b9a02ac3744508be74672aa90609f336",
"sha256:ebb486e3c37af4abaec45ea585d6f315a00f45ccf5ffa360dba4872a20285d63"
]
},
"Metadata": {
"LastTagTime": "2026-03-18T00:13:35.503844407+08:00"
}
}