镜像构建历史
# 2024-10-31 15:32:30 0.00B 设置默认要执行的命令
CMD ["sh" "-c" "uvicorn main:app --host 0.0.0.0 --port ${APPFLOWY_AI_SERVER_PORT:-5001}"]
# 2024-10-31 15:32:30 0.00B 声明容器运行时监听的端口
EXPOSE map[5001/tcp:{}]
# 2024-10-31 15:32:30 0.00B 设置环境变量 PYTHONPATH
ENV PYTHONPATH=/usr/src/app
# 2024-10-31 15:32:30 0.00B 设置环境变量 PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# 2024-10-31 15:32:30 523.25MB 执行命令并创建新的镜像层
RUN /bin/sh -c poetry config virtualenvs.create false && poetry install --no-root # buildkit
# 2024-10-31 15:30:54 0.00B 设置工作目录为/usr/src/app/server
WORKDIR /usr/src/app/server
# 2024-10-31 15:30:54 4.46MB 复制新文件或目录到容器中
COPY . . # buildkit
# 2024-10-31 15:30:54 51.48MB 执行命令并创建新的镜像层
RUN /bin/sh -c pip install --no-cache-dir poetry # buildkit
# 2024-10-31 15:29:57 217.60MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update && apt-get install -y gcc libpq-dev && rm -rf /var/lib/apt/lists/* # buildkit
# 2024-10-31 15:28:48 0.00B 设置工作目录为/usr/src/app
WORKDIR /usr/src/app
# 2024-10-19 07:23:40 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2024-10-19 07:23:40 36.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; for src in idle3 pip3 pydoc3 python3 python3-config; do dst="$(echo "$src" | tr -d 3)"; [ -s "/usr/local/bin/$src" ]; [ ! -e "/usr/local/bin/$dst" ]; ln -svT "$src" "/usr/local/bin/$dst"; done # buildkit
# 2024-10-19 07:23:40 43.58MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev gcc gnupg libbluetooth-dev libbz2-dev libc6-dev libdb-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev make tk-dev uuid-dev wget xz-utils zlib1g-dev ; wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz"; echo "$PYTHON_SHA256 *python.tar.xz" | sha256sum -c -; wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc"; GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$GPG_KEY"; gpg --batch --verify python.tar.xz.asc python.tar.xz; gpgconf --kill all; rm -rf "$GNUPGHOME" python.tar.xz.asc; mkdir -p /usr/src/python; tar --extract --directory /usr/src/python --strip-components=1 --file python.tar.xz; rm python.tar.xz; cd /usr/src/python; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --enable-loadable-sqlite-extensions --enable-optimizations --enable-option-checking=fatal --enable-shared --with-lto --with-ensurepip ; nproc="$(nproc)"; EXTRA_CFLAGS="$(dpkg-buildflags --get CFLAGS)"; LDFLAGS="$(dpkg-buildflags --get LDFLAGS)"; LDFLAGS="${LDFLAGS:--Wl},--strip-all"; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:-}" ; rm python; make -j "$nproc" "EXTRA_CFLAGS=${EXTRA_CFLAGS:-}" "LDFLAGS=${LDFLAGS:--Wl},-rpath='\$\$ORIGIN/../lib'" python ; make install; cd /; rm -rf /usr/src/python; find /usr/local -depth \( \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name 'libpython*.a' \) \) \) -exec rm -rf '{}' + ; ldconfig; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark; 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; rm -rf /var/lib/apt/lists/*; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit
# 2024-10-19 07:23:40 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=24887b92e2afd4a2ac602419ad4b596372f67ac9b077190f459aba390faf5550
# 2024-10-19 07:23:40 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.12.7
# 2024-10-19 07:23:40 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2024-10-19 07:23:40 9.17MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; rm -rf /var/lib/apt/lists/* # buildkit
# 2024-10-19 07:23:40 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2024-10-19 07:23:40 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2024-10-17 09:11:59 0.00B
/bin/sh -c #(nop) CMD ["bash"]
# 2024-10-17 09:11:59 97.11MB
/bin/sh -c #(nop) ADD file:702193928cded0bcec5edbf4a5660961e7caef8c9d9cafea3337b7f6720c4464 in /
镜像信息
{
"Id": "sha256:1e221a8bb6c664ab736fcc07e645072259c5dbbab7fc17d87cc30b2373e999ed",
"RepoTags": [
"appflowyinc/appflowy_ai:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/appflowyinc/appflowy_ai:latest-linuxarm64"
],
"RepoDigests": [
"appflowyinc/appflowy_ai@sha256:f492173854f2f465f98ced925c0212ad70a9976f4b7474da94ef421838b50769",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/appflowyinc/appflowy_ai@sha256:b3cfb43d295b7ed261a59e0221f33ed062ecb600f37e05163cb81192d97a54c8"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2024-10-31T07:32:30.967222372Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"5001/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305",
"PYTHON_VERSION=3.12.7",
"PYTHON_SHA256=24887b92e2afd4a2ac602419ad4b596372f67ac9b077190f459aba390faf5550",
"PYTHONUNBUFFERED=1",
"PYTHONPATH=/usr/src/app"
],
"Cmd": [
"sh",
"-c",
"uvicorn main:app --host 0.0.0.0 --port ${APPFLOWY_AI_SERVER_PORT:-5001}"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "/usr/src/app/server",
"Entrypoint": null,
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2024-10-31T07:28:43.967Z",
"org.opencontainers.image.description": "",
"org.opencontainers.image.licenses": "AGPL-3.0",
"org.opencontainers.image.revision": "468f05a042ce931cffe1b3b8c5b91318759461da",
"org.opencontainers.image.source": "https://github.com/AppFlowy-IO/AppFlowy-AI",
"org.opencontainers.image.title": "AppFlowy-AI",
"org.opencontainers.image.url": "https://github.com/AppFlowy-IO/AppFlowy-AI",
"org.opencontainers.image.version": "0.6.16"
}
},
"Architecture": "arm64",
"Os": "linux",
"Size": 946671207,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/1c0964e80bfbe8213ca2ffe169db537a0f56dda9ab5ea42af15dc8f9c3aa2bd7/diff:/var/lib/docker/overlay2/ac9999e437c23669b491901b4e88a459695f4957f3caf078556dec8f8f5f8968/diff:/var/lib/docker/overlay2/fa1ec0acb912e99a56db9b954916e33323aadb801ca21003bbc26d9285842634/diff:/var/lib/docker/overlay2/5e230e9c107a3a46c4dff5816627e21dc416e92e90f2a60480be1b35e1142aa2/diff:/var/lib/docker/overlay2/4128a7d0278484dd88a53aef117097c60d12714e92be5e60458c0aced906d951/diff:/var/lib/docker/overlay2/e9de674eb49f31e4f69e313f43755dc2a0ad11b5157f3481363c068afa637d92/diff:/var/lib/docker/overlay2/546a3a3b7534ef7de8557bcf4f05faaaebc3d3f947597a9644d9c03417a64aa8/diff:/var/lib/docker/overlay2/83c9c0f4fabeadee4e478f35eef8feb079233a1cd163a8d8780e0cb6c8a3f937/diff:/var/lib/docker/overlay2/52f56d51a5b85483da74b608f41a29987fef912d97b8c8e18a5b07dd1170ad9f/diff",
"MergedDir": "/var/lib/docker/overlay2/0942d39a87025fb7d15d5b889b55fe152124016589a0237323e7b6ae0d98696a/merged",
"UpperDir": "/var/lib/docker/overlay2/0942d39a87025fb7d15d5b889b55fe152124016589a0237323e7b6ae0d98696a/diff",
"WorkDir": "/var/lib/docker/overlay2/0942d39a87025fb7d15d5b889b55fe152124016589a0237323e7b6ae0d98696a/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:f0f039847c0897e41273775d599cc761049c809342ff8362efb4caf561186ada",
"sha256:c6fe574d28cee88986e7a83cd3aa90cf971e618ce75dc5ef30fbeaaf74ab10b8",
"sha256:f78f7d13a33733e543e13735a081924b61f4cbfe3852dff5386b8b68702cb1a1",
"sha256:4ece6554c1a9f6eb208d1405f0f5d147521f102d3b38d73852504b4e5f95c71b",
"sha256:b3052e0636e5bda43db33597d42a8ec1787b2bf8d7fc3c4900340d605f651b89",
"sha256:d198250383ea462a367c240f9677313fed4039c4101ec80a7b2e66bb17e2b51a",
"sha256:6d9217025b4ef14c632e5fcb5cdcfa2fe86a69bb676270e7162840315757e770",
"sha256:9c83855fe848b76e7a7cc98a381296ce22d0849595acced7aa88d837e48407cc",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:7ea2d309ee83f33db368815fe3938eb00d3a49bcfc79af344c9b4618d8074d47"
]
},
"Metadata": {
"LastTagTime": "2025-06-02T16:10:03.710929922+08:00"
}
}