镜像构建历史
# 2025-01-08 18:35:18 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/bin/sh" "-c" "/iptv-api-entrypoint.sh"]
# 2025-01-08 18:35:18 350.00B 执行命令并创建新的镜像层
RUN |3 APP_WORKDIR=/iptv-api LITE=False APP_PORT=8000 /bin/sh -c chmod +x /iptv-api-entrypoint.sh # buildkit
# 2025-01-08 18:35:18 294.52KB 复制新文件或目录到容器中
COPY config /iptv-api-config # buildkit
# 2025-01-08 18:35:18 350.00B 复制新文件或目录到容器中
COPY entrypoint.sh /iptv-api-entrypoint.sh # buildkit
# 2025-01-08 18:35:18 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2025-01-08 18:35:18 281.00B 执行命令并创建新的镜像层
RUN |3 APP_WORKDIR=/iptv-api LITE=False APP_PORT=8000 /bin/sh -c (crontab -l ; echo "0 22 * * * cd $APP_WORKDIR && /.venv/bin/python main.py"; echo "0 10 * * * cd $APP_WORKDIR && /.venv/bin/python main.py") | crontab - # buildkit
# 2025-01-08 18:35:17 660.73MB 执行命令并创建新的镜像层
RUN |3 APP_WORKDIR=/iptv-api LITE=False APP_PORT=8000 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends cron && if [ "$LITE" = False ]; then apt-get install -y --no-install-recommends chromium chromium-driver; fi && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit
# 2025-01-08 18:34:38 168.59MB 复制新文件或目录到容器中
COPY /usr/bin-new/* /usr/bin # buildkit
# 2025-01-08 18:34:37 78.03MB 复制新文件或目录到容器中
COPY /app/.venv /.venv # buildkit
# 2025-01-08 18:33:12 7.06MB 复制新文件或目录到容器中
COPY . /iptv-api # buildkit
# 2025-01-08 18:33:11 0.00B 设置工作目录为/iptv-api
WORKDIR /iptv-api
# 2025-01-08 18:33:11 0.00B 设置环境变量 PATH
ENV PATH=/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2025-01-08 18:33:11 0.00B 设置环境变量 APP_PORT
ENV APP_PORT=8000
# 2025-01-08 18:33:11 0.00B 设置环境变量 LITE
ENV LITE=False
# 2025-01-08 18:33:11 0.00B 设置环境变量 APP_WORKDIR
ENV APP_WORKDIR=/iptv-api
# 2025-01-08 18:33:11 0.00B 定义构建参数
ARG APP_PORT=8000
# 2025-01-08 18:33:11 0.00B 定义构建参数
ARG LITE=False
# 2025-01-08 18:33:11 0.00B 定义构建参数
ARG APP_WORKDIR=/iptv-api
# 2024-12-04 10:30:19 0.00B 设置默认要执行的命令
CMD ["python3"]
# 2024-12-04 10:30:19 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-12-04 10:30:19 36.84MB 执行命令并创建新的镜像层
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-12-04 10:30:19 0.00B 设置环境变量 PYTHON_SHA256
ENV PYTHON_SHA256=9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
# 2024-12-04 10:30:19 0.00B 设置环境变量 PYTHON_VERSION
ENV PYTHON_VERSION=3.13.1
# 2024-12-04 10:30:19 0.00B 设置环境变量 GPG_KEY
ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305
# 2024-12-04 10:30:19 8.48MB 执行命令并创建新的镜像层
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-12-04 10:30:19 0.00B 设置环境变量 PATH
ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2024-12-04 10:30:19 74.82MB
# debian.sh --arch 'amd64' out/ 'bookworm' '@1734912000'
镜像信息
{
"Id": "sha256:0f557ca34fc900752689d339fc8920691f76eb3e89b286c7020be3b2fa5c6775",
"RepoTags": [
"guovern/iptv-api:latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/guovern/iptv-api:latest"
],
"RepoDigests": [
"guovern/iptv-api@sha256:f36960473eda9a899931b2e89763149151f3238a2557dce371383ae529c0c9cf",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/guovern/iptv-api@sha256:33d97dc2f4f3e83f03f82872593d2b7755f0ed214c597aca1f0dcf9c20f086d2"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-01-08T10:35:18.192383346Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8000/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305",
"PYTHON_VERSION=3.13.1",
"PYTHON_SHA256=9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9",
"APP_WORKDIR=/iptv-api",
"LITE=False",
"APP_PORT=8000"
],
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "/iptv-api",
"Entrypoint": [
"/bin/sh",
"-c",
"/iptv-api-entrypoint.sh"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 1034845034,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/506b297d95a6b333dbb073dbbb2fd3731128f0d35509ec96730c7cdfb285e1f4/diff:/var/lib/docker/overlay2/6c19897dd3f730176c45aae2073abf798bba1871d1b94f3dbea60b0d2e9c5697/diff:/var/lib/docker/overlay2/3438279efe1557bdb43a1def7931c7ac9ac05d974b2d04c187b5a25875367dde/diff:/var/lib/docker/overlay2/3bf752330763f4135664477073971ee84c8f870c9395ec7d603b32002e72af02/diff:/var/lib/docker/overlay2/bbfb256f28606f6b6d89992c3aca433bf0815123e1e874cc2e0f686aa0a1a23f/diff:/var/lib/docker/overlay2/eda3402096b3500ab4f0aa4406e2dd4a4ac0287ae63dc416f35682e205fc9473/diff:/var/lib/docker/overlay2/e9b4d2b72b1ef604244594240c2994c76467b9689bca47b614b97acc8ecd0059/diff:/var/lib/docker/overlay2/90e7c2a7b52bcffc4f5921f9ddf42293b5811de570f3fe97b1cb82368da19bcd/diff:/var/lib/docker/overlay2/6f9423e03c4718a7dcf42fdcb663ff784233c88b619c513bba48b7d485704998/diff:/var/lib/docker/overlay2/c79835353bf1f20ff2241f504238c27db9767f28e672611bfccfa4449fee2ba2/diff:/var/lib/docker/overlay2/94bff58b2c2597122168e2071515589033a7bf064499b704a42c885443ecba4e/diff:/var/lib/docker/overlay2/d7da656d9414ae961b292fa109d069e923b341eab550c2db09cb0ab256f4ae70/diff",
"MergedDir": "/var/lib/docker/overlay2/de326ce8a5173a5e1ee148bef907e3f6f0a04cba8961a976ce7ad2ed9995dc75/merged",
"UpperDir": "/var/lib/docker/overlay2/de326ce8a5173a5e1ee148bef907e3f6f0a04cba8961a976ce7ad2ed9995dc75/diff",
"WorkDir": "/var/lib/docker/overlay2/de326ce8a5173a5e1ee148bef907e3f6f0a04cba8961a976ce7ad2ed9995dc75/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:8b296f48696071aafb5a6286ca60d441a7e559b192fc7f94bb63ee93dae98f17",
"sha256:1e544a3b471882d01ba616db5f266e8795c7af738ef2114de58e72250f7eb03d",
"sha256:c577aa29a3534058d05a4af57b6001561898eedbc0ef38e9c72fef5327732519",
"sha256:79895f013059ff6ef709dea02ba2af172a028d6d90294dddda6cda288fd52823",
"sha256:beffe473d7e7a6e3f7681056d14441249926841360748c23ec9221c933d11c56",
"sha256:05b61b6720e1075f7621cbf8494a9c76521c28fec0eeccd8739aaaab07c56597",
"sha256:3a13c7c603cee0cc352e57247315cb75dab04d95dbfc056686e33d5cfb65012f",
"sha256:d004b02dbc23597b5dc7e0cf14811c9ee4328db3a1166af5a2d7f81c383c6d87",
"sha256:b600bcec6297c3c40fb3c5a7862b8498ff23dc1f10912e8a6efc8e51a68421ae",
"sha256:a335687cceaf5fb0d1b017d61ca58a7d1eecf8e3eb855d995b7a49e360b6882d",
"sha256:25af16fa78a36276dca745e4e74ce7c8b051a5e34b861147f26713e2b291aadb",
"sha256:acaa569c5a7d50a24f1269ee7dba56fc29bb93ac98d6da14b26fea9ca2cde708",
"sha256:e5a7e8229bcdd7348dc01f87ff95d94d11212a926fbe48366760cfbc112b4df7"
]
},
"Metadata": {
"LastTagTime": "2025-01-12T19:43:45.309372117+08:00"
}
}