镜像构建历史
# 2026-08-18 17:45:21 0.00B 声明容器运行时监听的端口
EXPOSE [6379/tcp]
# 2026-08-18 17:45:21 0.00B 设置环境变量 PATH PGDATA POSTGRES_USER POSTGRES_PASSWORD POSTGRES_MAX_CONNECTIONS REDIS_PASSWORD LANG PYTHONUNBUFFERED MAXKB_CONFIG_TYPE MAXKB_LOG_LEVEL MAXKB_SANDBOX MAXKB_SANDBOX_HOME MAXKB_SANDBOX_PYTHON_PACKAGE_PATHS MAXKB_SANDBOX_PYTHON_BANNED_HOSTS MAXKB_ADMIN_PATH
ENV PATH=/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/17/bin PGDATA=/opt/maxkb/data/postgresql/pgdata POSTGRES_USER=root POSTGRES_PASSWORD=Password123@postgres POSTGRES_MAX_CONNECTIONS=1000 REDIS_PASSWORD=Password123@redis LANG=en_US.UTF-8 PYTHONUNBUFFERED=1 MAXKB_CONFIG_TYPE=ENV MAXKB_LOG_LEVEL=INFO MAXKB_SANDBOX=1 MAXKB_SANDBOX_HOME=/opt/maxkb-app/sandbox MAXKB_SANDBOX_PYTHON_PACKAGE_PATHS=/opt/py3/lib/python3.11/site-packages,/opt/maxkb-app/sandbox/python-packages,/opt/maxkb/python-packages MAXKB_SANDBOX_PYTHON_BANNED_HOSTS=127.0.0.0/8,localhost,host.docker.internal,172.17.0.0/16,maxkb,pgsql,redis,172.31.250.192/26,0.0.0.0/32,::/0 MAXKB_ADMIN_PATH=/admin
# 2026-08-18 17:45:21 440.16MB 复制新文件或目录到容器中
COPY --chmod=700 /opt/maxkb-app/model /opt/maxkb-app/model # buildkit
# 2026-08-18 17:45:20 281.03MB 执行命令并创建新的镜像层
RUN |1 DEPENDENCIES= curl ca-certificates vim wait-for-it redis-server postgresql-17-pgvector postgresql-17-age /bin/sh -c ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone && echo "deb http://deb.debian.org/debian testing main" >> /etc/apt/sources.list && printf "Package: redis-server\nPin: release a=testing\nPin-Priority: 501\n" > /etc/apt/preferences.d/redis && apt-get update && apt-get install -y --no-install-recommends $DEPENDENCIES && find /etc/ -type f ! -path '/etc/resolv.conf' ! -path '/etc/hosts' | xargs chmod g-rx && curl -L --connect-timeout 120 -m 1800 https://resource.fit2cloud.com/maxkb/ffmpeg/get-ffmpeg-linux | sh && mkdir -p /opt/maxkb-app/sandbox/lib && chmod -R 550 /opt/maxkb-app/sandbox && useradd --no-create-home --home /opt/maxkb-app/sandbox -s /usr/sbin/nologin sandbox -g root && chmod g-rwx /usr/local/bin/* /usr/bin/* /bin/* /usr/sbin/* /sbin/* /usr/lib/postgresql/17/bin/* && chmod g+xr /usr/bin/ld.so /usr/local/bin/python* && chmod -R g-rwx /tmp /var/tmp /var/lock && chmod g+rx /tmp && apt-get clean all && rm -rf /var/lib/postgresql /var/lib/apt/lists/* /usr/share/doc/* /usr/share/man/* /usr/share/info/* /usr/share/locale/* /usr/share/lintian/* /usr/share/linda/* /var/cache/* /var/log/* /var/tmp/* /tmp/* # buildkit
# 2026-08-18 17:45:20 0.00B 定义构建参数
ARG DEPENDENCIES= curl ca-certificates vim wait-for-it redis-server postgresql-17-pgvector postgresql-17-age
# 2026-08-18 17:44:44 65.00B 复制新文件或目录到容器中
COPY installer/init.sql /docker-entrypoint-initdb.d/ # buildkit
# 2026-08-18 17:44:44 2.85KB 复制新文件或目录到容器中
COPY --chmod=500 installer/*.sh /usr/bin/ # buildkit
# 2026-08-18 17:44:44 23.99MB 复制新文件或目录到容器中
COPY /opt/py3 /opt/py3 # buildkit
# 2026-08-18 17:44:43 44.38MB 复制新文件或目录到容器中
COPY /usr/local /usr/local # buildkit
# 2026-08-14 03:15:37 0.00B 设置默认要执行的命令
CMD ["postgres"]
# 2026-08-14 03:15:37 0.00B 声明容器运行时监听的端口
EXPOSE map[5432/tcp:{}]
# 2026-08-14 03:15:37 0.00B 设置停止容器时发送的系统调用信号
STOPSIGNAL SIGINT
# 2026-08-14 03:15:37 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["docker-entrypoint.sh"]
# 2026-08-14 03:15:37 23.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sT docker-ensure-initdb.sh /usr/local/bin/docker-enforce-initdb.sh # buildkit
# 2026-08-14 03:15:37 16.89KB 复制新文件或目录到容器中
COPY docker-entrypoint.sh docker-ensure-initdb.sh /usr/local/bin/ # buildkit
# 2026-08-14 03:15:37 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/var/lib/postgresql/data]
# 2026-08-14 03:15:37 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c install --verbose --directory --owner postgres --group postgres --mode 1777 "$PGDATA" # buildkit
# 2026-08-14 03:15:37 0.00B 设置环境变量 PGDATA
ENV PGDATA=/var/lib/postgresql/data
# 2026-08-14 03:15:37 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c install --verbose --directory --owner postgres --group postgres --mode 3777 /var/run/postgresql # buildkit
# 2026-08-14 03:15:36 63.60KB 执行命令并创建新的镜像层
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-08-14 03:15:36 326.50MB 执行命令并创建新的镜像层
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 | loong64 | 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-08-14 03:15:25 0.00B 设置环境变量 PG_VERSION
ENV PG_VERSION=17.11-1.pgdg13+2
# 2026-08-14 03:15:25 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/17/bin
# 2026-08-14 03:15:25 0.00B 设置环境变量 PG_MAJOR
ENV PG_MAJOR=17
# 2026-08-14 03:15:25 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-08-14 03:15:25 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c mkdir /docker-entrypoint-initdb.d # buildkit
# 2026-08-14 03:15:25 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-08-14 03:15:22 0.00B 设置环境变量 LANG
ENV LANG=en_US.utf8
# 2026-08-14 03:15:22 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-08-14 03:15:18 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-08-14 03:15:18 0.00B 设置环境变量 GOSU_VERSION
ENV GOSU_VERSION=1.19
# 2026-08-14 03:15:13 15.87MB 执行命令并创建新的镜像层
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-08-14 03:15:08 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-08-03 08:00:00 78.62MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1785715200'
镜像信息
{
"Id": "sha256:160cf2f6338288f72513e2ef3abc71948ce2fa0cea03cddc867b96e3172ea470",
"RepoTags": [
"ghcr.io/1panel-dev/maxkb-base:python3.11-pg17.11-20260818",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/1panel-dev/maxkb-base:python3.11-pg17.11-20260818"
],
"RepoDigests": [
"ghcr.io/1panel-dev/maxkb-base@sha256:02dff6ba1e1eef96aecd4891ac403bc768c2483bfff2ebdb85ec562b5454f3fa",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/1panel-dev/maxkb-base@sha256:248c3adcbc954f07c302cdf9a74b16301b4790ecf60cf3b2451f9c97108bf0c4"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-08-18T09:45:21.178944104Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"5432/tcp": {},
"6379/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/17/bin",
"GOSU_VERSION=1.19",
"LANG=en_US.UTF-8",
"PG_MAJOR=17",
"PG_VERSION=17.11-1.pgdg13+2",
"PGDATA=/opt/maxkb/data/postgresql/pgdata",
"POSTGRES_USER=root",
"POSTGRES_PASSWORD=Password123@postgres",
"POSTGRES_MAX_CONNECTIONS=1000",
"REDIS_PASSWORD=Password123@redis",
"PYTHONUNBUFFERED=1",
"MAXKB_CONFIG_TYPE=ENV",
"MAXKB_LOG_LEVEL=INFO",
"MAXKB_SANDBOX=1",
"MAXKB_SANDBOX_HOME=/opt/maxkb-app/sandbox",
"MAXKB_SANDBOX_PYTHON_PACKAGE_PATHS=/opt/py3/lib/python3.11/site-packages,/opt/maxkb-app/sandbox/python-packages,/opt/maxkb/python-packages",
"MAXKB_SANDBOX_PYTHON_BANNED_HOSTS=127.0.0.0/8,localhost,host.docker.internal,172.17.0.0/16,maxkb,pgsql,redis,172.31.250.192/26,0.0.0.0/32,::/0",
"MAXKB_ADMIN_PATH=/admin"
],
"Cmd": [
"postgres"
],
"Image": "",
"Volumes": {
"/var/lib/postgresql/data": {}
},
"WorkingDir": "",
"Entrypoint": [
"docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": null,
"StopSignal": "SIGINT"
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1243230214,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/3e1ec3839ac382e53cdc94532575cc60110ec4fdfa8e607cef2809d00b7e7c0f/diff:/var/lib/docker/overlay2/51c8794f3e64d43cabc71fff1d21305920751f7f88a291ad0af1464a176c8a31/diff:/var/lib/docker/overlay2/50d0e7e2e381282fb218919a0368068b4be57d20a912950f7088f2eb087a5800/diff:/var/lib/docker/overlay2/6ecf91549c5538c5851dd81f510620943a8f79b60e2f9d3591f91dae7a0f132e/diff:/var/lib/docker/overlay2/5c6c65d6bd2037f548aed1b25cbbdd781d53a76fbab4752f4c6dd01be459e26c/diff:/var/lib/docker/overlay2/167af760c23b207ab6d91cd285c3502b4e2771d02c48ee029c4ca28aa4dbdb95/diff:/var/lib/docker/overlay2/6cc5dbeebe467f16d1e03e0438ed60a6fcb77623ddc2ccb222eb40f7db247c1d/diff:/var/lib/docker/overlay2/c5d8392d5e8453d5ad472f651d94d44df8269221e95b0bd7da8bd8814ab6df72/diff:/var/lib/docker/overlay2/d406660256df584ac0dbaaaaa8c82f2f0277a16f4c0662b610c63f5abd941bf3/diff:/var/lib/docker/overlay2/c6167ea2e898321ad410b2a094fa11cffb2e30107c5a6470821a4fba9c1e415a/diff:/var/lib/docker/overlay2/b11d30f335ba4a834114da119cf1012c9574644c45608d93864e64fcb835a4ff/diff:/var/lib/docker/overlay2/7ad7d252debbd4900aaf7d3fd81968142270d90c09acaaf4708bdc04afe0c326/diff:/var/lib/docker/overlay2/16f050b3ac74c7f64002b5df88f860d289e70377029ad13dc306a257319b01ef/diff:/var/lib/docker/overlay2/16822adf479c860c40eb4e579830c83b197be3d8595b3a17ac0b78da3a7fe25f/diff:/var/lib/docker/overlay2/8889bcdd849ac3b7760a05772b13b5a9ddb6e9b58783cac015e70a35b0a1a62c/diff:/var/lib/docker/overlay2/76c7b073148c5c13698d773e35f7dba559870e6e9e5f397c7f4b1b8ec0bd151e/diff:/var/lib/docker/overlay2/938072918e477f8991d14972026a2450c9f7ba7f35ca09075c00f153ee483543/diff:/var/lib/docker/overlay2/264c72a720f8092482cb300972ccff51392eb2b54dfca44dd969b82ca3dd2fbd/diff:/var/lib/docker/overlay2/c02066e65dd839aecca059decd5dbdbf9e3fdca26d7098c1e333cf6386e825a6/diff",
"MergedDir": "/var/lib/docker/overlay2/017b70cfd5fa9edaab72eefcff3a24caae18df325b040bab304d5ccd7b85a133/merged",
"UpperDir": "/var/lib/docker/overlay2/017b70cfd5fa9edaab72eefcff3a24caae18df325b040bab304d5ccd7b85a133/diff",
"WorkDir": "/var/lib/docker/overlay2/017b70cfd5fa9edaab72eefcff3a24caae18df325b040bab304d5ccd7b85a133/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:6f94328331290cbd81edab450664d42da7b64c191416c9346cd5d28c84f76035",
"sha256:5c672b807f53f451c6b150df95e8fdecb8400fa2399d8d0b339422c1bcdee7f1",
"sha256:79bbeed00249fc237e9937cf84e907a59fd99f873eec42ed0b318071f04cb75d",
"sha256:b6f3d6f511a4a20d9cf892d3b7f3d4199fb582d98c4978e611d20ab3712ae032",
"sha256:3226cabe978c6e5b609546498fadd6e9c0b2c3d325d7027d2cad0ecce750a3b8",
"sha256:65a3e6c968b3e41984779f9fd774dfc3505f7c828697ac0fe2ff19031c66d62c",
"sha256:38584f60a2f3a5e3319b99e43601da3bc04c982dc89cd8265f7c306de09b1da8",
"sha256:732815bc6eedf32765edef42f4525055a5b2a336f1ac99efd50b8b444dd847b8",
"sha256:4e09a619de2aa6ee9ca7d2c6dd4b9148b60bcea00d2d0006cd33d53435c2b4d7",
"sha256:0c41323be996fa3310a4d5ecd47213ce637065040abe07a81392b0a44c5d3ece",
"sha256:04f5311a008b4260dfc037810038588fd92caea69e546556343da4540e4f5681",
"sha256:18c75eb8711107a2a59edf8e50045c21a3b42f24533c0cc4ddf36401c234dab4",
"sha256:0005ecfa052a0066cc814b52e6e57c9e2091a4a99ae0dc2adf8b9f544825e930",
"sha256:061ba3f149fab90d6610bf129a18c6dcc6f30338105d150b490e28ad947e2533",
"sha256:cc730337405ad0f3442b62682d86abaf6c4b51c252df3f2448aeba670bc8e471",
"sha256:2663e5cdcf2689a1cc3907161d72914b9c6af72ffd5161014d14f06e258ad081",
"sha256:56a7cd5cf1e9fcdaaf387cebaa9a774b7cccf2f28b614fff68ab3fe1f8d870a6",
"sha256:a754cb2320569663e546d4086773d27ab525efdfbd74f7f32745700e0ec57514",
"sha256:ae55f2652f1aa4c16d5da7cc730a6d5bdeb467e217942cf4f72b0a23e218743e",
"sha256:5304810c276072f779f534e806d2b9ad956a73bd96a1707a62a0bc22f8916f7b"
]
},
"Metadata": {
"LastTagTime": "2026-11-06T00:07:38.604107651+08:00"
}
}