Namespace
zhulinsen
Image / Tag
daily_stock_analysis:v3.25.0
Content Digest
sha256:77742a8d7620cc110dcb6f607a8a215213c41246e462abee60e90d92f5d7fb19
Details
Created

2026-07-03 13:21:54 UTC

Size

457 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-07-03T13:16:53.338Z
  • org.opencontainers.image.description
    LLM 驱动的多市场股票智能分析系统:多源行情、实时新闻、决策看板与自动推送,支持零成本定时运行。 LLM-powered multi-market stock analysis system with multi-source market data, real-time news, decision dashboard, automated notifications, and cost-free scheduled runs.
  • org.opencontainers.image.licenses
    MIT
  • org.opencontainers.image.revision
    77911efbc56585fba0e3eb153281cb7fadf090e0
  • org.opencontainers.image.source
    https://github.com/ZhuLinsen/daily_stock_analysis
  • org.opencontainers.image.title
    daily_stock_analysis
  • org.opencontainers.image.url
    https://github.com/ZhuLinsen/daily_stock_analysis
  • org.opencontainers.image.version
    v3.25.0

Environment
API_PORT

8000

DATABASE_PATH

/app/data/stock_analysis.db

GPG_KEY

A035C8C19219BA821ECEA86B64E628F8D684696D

LANG

C.UTF-8

LOG_DIR

/app/logs

PATH

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PYTHONUNBUFFERED

1

PYTHON_SHA256

272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

PYTHON_VERSION

3.11.15

TZ

Asia/Shanghai

WEBUI_HOST

0.0.0.0


Layers

[#000] sha256:68629629b516c3cd6f5e71ffbe18e32afb1ae5b4926c92d058c0f11ef1fd58a3 - 5.89% (26.9 MB)

[#001] sha256:5f2829973c61ae9b3eae29d8108779a49e2b582938aa91886ad6c3ee12fc3c49 - 0.73% (3.36 MB)

[#002] sha256:e816daf19684e90b8ed90b829441394a6c979647ae9511a4dbc22e65309443ea - 3.33% (15.2 MB)

[#003] sha256:eedddce55abed0a420359989184b3ac16b0d0f47193f7dfee5d0d17cf0b0dedf - 0.0% (248 Bytes)

[#004] sha256:e2eb7d9c388d48390c7ce274951b2ff27b41d9105db90dd6969cb928dcf3fb10 - 0.0% (93 Bytes)

[#005] sha256:b1078b0ca1210994ba39940cfcc0e61d99e226a7510fe4eaf6a31b80b9b30e97 - 0.0% (193 Bytes)

[#006] sha256:eaae6e17f2e1c62a68a7a052f1b777df825cb7430d5e2577ef9b4e1e278ab346 - 44.55% (204 MB)

[#007] sha256:3ab620e6507e8f2741b54433f32bba1fe4643e796182f014ae281fb3cbe2c1ae - 0.0% (3.23 KB)

[#008] sha256:5cd67a914d8dad23a566c32628f97ea8a1dd2a44d0d7b1baa0fe9081fff5deac - 0.0% (1.86 KB)

[#009] sha256:855a845b18bf6060d271535ca4d4aa1eb9e5e642a39db02059527b2b7f31f7e1 - 43.41% (198 MB)

[#010] sha256:d1c9d4bc0e047bd27049d479bb8987c7a45668a49e5226ec20df79c4ff9db739 - 0.0% (16.3 KB)

[#011] sha256:90d6158fa012b1d65799e570b3f315ac0e735ec3934dd99d4ab1f210e5aa2f8a - 0.05% (253 KB)

[#012] sha256:d20ea7b94ef710b419ed5be2a6bba204c46e455bc161c7755ccb28c74f03f50a - 0.09% (434 KB)

[#013] sha256:ae3038f28354a07003d94eb6a6aed0d9830a28331cbe7fd5f328ce7d425bc82d - 0.03% (148 KB)

[#014] sha256:c89deb0181201f1ffe7bb1d7c6ecf24370612f8efcf4647eb5e11f0d7ad7427f - 0.57% (2.61 MB)

[#015] sha256:4d953ffc30019f39cccd6333156f8586465d73bdeefd2400e893438ea7c4b7e9 - 0.0% (14.2 KB)

[#016] sha256:c001c965d4f371e0747c18e733d61d1684d60afc1b36541b953223c2ce8e187c - 0.26% (1.18 MB)

[#017] sha256:d7a5dcc85e693aeb4409098b26bbd90415581d8c5dbdd16a35bbb6729603c27b - 0.0% (1.06 KB)

[#018] sha256:c416ebdb5cf6a275c0d0dd201d32cef526bdb0768bf13b017be74e0ef20de142 - 0.03% (153 KB)

[#019] sha256:9630ef9979f83a52159aa3fbe35065e5c6e9c8eecc074a80db1a2ac61d6b43ce - 1.02% (4.64 MB)

[#020] sha256:ca549f3996dc7f26427c5f8252f36009fb8166cb296cdaaa6570607226ac1ef3 - 0.02% (85.9 KB)


History
2026-06-23 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'amd64' out/ 'bookworm' '@1782172800'

2026-06-24 02:02:16 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-06-24 02:02:16 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-06-24 02:02:16 UTC (buildkit.dockerfile.v0)

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

2026-06-24 02:02:16 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D

2026-06-24 02:02:16 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.11.15

2026-06-24 02:02:16 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

2026-06-24 02:11:12 UTC (buildkit.dockerfile.v0)

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 $(test "${gnuArch%%-*}" != 'riscv64' && echo '--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 -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | 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 install --disable-pip-version-check --no-cache-dir --no-compile 'setuptools==79.0.1' 'wheel<0.46' ; pip3 --version # buildkit

2026-06-24 02:11:12 UTC (buildkit.dockerfile.v0)

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

2026-06-24 02:11:12 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-07-03 13:19:27 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-07-03 13:19:27 UTC (buildkit.dockerfile.v0)

ENV TZ=Asia/Shanghai

2026-07-03 13:19:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit

2026-07-03 13:20:11 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends gcc curl git gosu wkhtmltopdf fontconfig libjpeg62-turbo libxrender1 libxext6 && rm -rf /var/lib/apt/lists/* # buildkit

2026-07-03 13:20:12 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c groupadd -g 1000 dsa && useradd -u 1000 -g dsa -m dsa # buildkit

2026-07-03 13:20:12 UTC (buildkit.dockerfile.v0)

COPY requirements.txt . # buildkit

2026-07-03 13:21:49 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c pip install -r requirements.txt # buildkit

2026-07-03 13:21:49 UTC (buildkit.dockerfile.v0)

COPY *.py ./ # buildkit

2026-07-03 13:21:49 UTC (buildkit.dockerfile.v0)

COPY api/ ./api/ # buildkit

2026-07-03 13:21:49 UTC (buildkit.dockerfile.v0)

COPY data_provider/ ./data_provider/ # buildkit

2026-07-03 13:21:49 UTC (buildkit.dockerfile.v0)

COPY bot/ ./bot/ # buildkit

2026-07-03 13:21:50 UTC (buildkit.dockerfile.v0)

COPY src/ ./src/ # buildkit

2026-07-03 13:21:50 UTC (buildkit.dockerfile.v0)

COPY strategies/ ./strategies/ # buildkit

2026-07-03 13:21:50 UTC (buildkit.dockerfile.v0)

COPY /app/static ./static/ # buildkit

2026-07-03 13:21:50 UTC (buildkit.dockerfile.v0)

COPY docker/entrypoint.sh /usr/local/bin/docker-entrypoint.sh # buildkit

2026-07-03 13:21:51 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c python -c "import alphasift.dsa_adapter" # buildkit

2026-07-03 13:21:53 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p /app/data /app/logs /app/reports && chown -R dsa:dsa /app && chmod +x /usr/local/bin/docker-entrypoint.sh # buildkit

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c EF_DATA_DIR="$(python -c 'import efinance, pathlib; print(pathlib.Path(efinance.__file__).parent / "data")')" && mkdir -p "$EF_DATA_DIR" && chown -R dsa:dsa "$EF_DATA_DIR" # buildkit

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

ENV LOG_DIR=/app/logs

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

ENV DATABASE_PATH=/app/data/stock_analysis.db

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

ENV WEBUI_HOST=0.0.0.0

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

ENV API_PORT=8000

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

EXPOSE map[8000/tcp:{}]

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

VOLUME [/app/data /app/logs /app/reports]

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "curl -f http://localhost:8000/api/health || curl -f http://localhost:8000/health || python -c \"import sys; sys.exit(0)\""] "30s" "10s" "10s" "0s" '\x03'}

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

2026-07-03 13:21:54 UTC (buildkit.dockerfile.v0)

CMD ["python" "main.py" "--schedule"]

Details
Created

2026-07-03 13:30:34 UTC

Size

447 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-07-03T13:16:53.338Z
  • org.opencontainers.image.description
    LLM 驱动的多市场股票智能分析系统:多源行情、实时新闻、决策看板与自动推送,支持零成本定时运行。 LLM-powered multi-market stock analysis system with multi-source market data, real-time news, decision dashboard, automated notifications, and cost-free scheduled runs.
  • org.opencontainers.image.licenses
    MIT
  • org.opencontainers.image.revision
    77911efbc56585fba0e3eb153281cb7fadf090e0
  • org.opencontainers.image.source
    https://github.com/ZhuLinsen/daily_stock_analysis
  • org.opencontainers.image.title
    daily_stock_analysis
  • org.opencontainers.image.url
    https://github.com/ZhuLinsen/daily_stock_analysis
  • org.opencontainers.image.version
    v3.25.0

Environment
API_PORT

8000

DATABASE_PATH

/app/data/stock_analysis.db

GPG_KEY

A035C8C19219BA821ECEA86B64E628F8D684696D

LANG

C.UTF-8

LOG_DIR

/app/logs

PATH

/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PYTHONUNBUFFERED

1

PYTHON_SHA256

272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

PYTHON_VERSION

3.11.15

TZ

Asia/Shanghai

WEBUI_HOST

0.0.0.0


Layers

[#000] sha256:74f1dcfcc9c80045f6f6394ffcfc261cb19d0c71b97e964aec3d4abf4e0f7009 - 6.0% (26.8 MB)

[#001] sha256:755ad895c39ca02338ee036b6e754863fe176a403a350b617d25bd2ec8bb5a02 - 0.72% (3.2 MB)

[#002] sha256:fcf5e53d1901f93c015e3e257970e2326ea7fc8860c5c33db179af749aa19d7a - 3.39% (15.1 MB)

[#003] sha256:a4eb1056968a46ad41c648196dbc94e60f85d1eb17a0ffd411b4e756abbe3a07 - 0.0% (250 Bytes)

[#004] sha256:d0f66bb145a88e8c3979713f138fa2ba5beb8da791a120f02d298b1d5faf0a6f - 0.0% (93 Bytes)

[#005] sha256:b1078b0ca1210994ba39940cfcc0e61d99e226a7510fe4eaf6a31b80b9b30e97 - 0.0% (193 Bytes)

[#006] sha256:c74b14ded9aed110575938e7f1ec5a74c95d484b3861dc322353370a746e0ed6 - 44.1% (197 MB)

[#007] sha256:8d75612d68be594a16960a57bcbc7355abc58c6bd7595fc9966fb3a9082a7b5d - 0.0% (3.24 KB)

[#008] sha256:c1d36b31c3d5e0d23ff1baaa58c14ab867e3f587b66c48c7c0b9dbd1a16fe851 - 0.0% (1.86 KB)

[#009] sha256:a3eea93e9976df0239e794e0dd1268dd40c7b0858b4dfc8df9fd50ea6e8a39c9 - 43.66% (195 MB)

[#010] sha256:4dc4f7521261f8df3c65b7bdb494e388b1140c9ff7f605f99beeb559172c7260 - 0.0% (16.3 KB)

[#011] sha256:21ca29825bab031911ca477b7bca52f1134d60e8431372ec189d5078563a53e8 - 0.06% (253 KB)

[#012] sha256:906061b15540a9ea734cca256d7c2680128898d7f4e9eddb6cb3104882292356 - 0.09% (434 KB)

[#013] sha256:0e8178a8e8018eb8284f1170da8f4697b56628edd813ef9f498ec69082eb6a56 - 0.03% (148 KB)

[#014] sha256:72d666a1c4850d5e672b35d4c5cdcd2c33f42d7898591c0c3c6cbc75e9795c10 - 0.59% (2.61 MB)

[#015] sha256:3acd1d62c68aeb31ffc33ef55a273c80d7c223031e77ffaa024231dfca0e68dc - 0.0% (14.2 KB)

[#016] sha256:792c6e473143cc2e7133ec6b2803b4817c4b22d6367aebcb80945e5865e28892 - 0.26% (1.18 MB)

[#017] sha256:5cc17adb199e954358a9b582fad0b6a1b030082ba3bbb229f0bbe76d6415fb87 - 0.0% (1.05 KB)

[#018] sha256:d97eb3822d9ec866a7facd4b8a080bcc7d77a65cd5e1df769be2ad6d6cb64c1a - 0.03% (153 KB)

[#019] sha256:d65ab371ec9aeb52e2446522a6876d9982c8fad7313aba96b578a1af74a61478 - 1.04% (4.64 MB)

[#020] sha256:6730dc510cfc5e2fbee71b2abed1f946caabe34313273166f1f6046ed25bcc0b - 0.02% (85.9 KB)


History
2026-06-23 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'arm64' out/ 'bookworm' '@1782172800'

2026-06-24 02:06:17 UTC (buildkit.dockerfile.v0)

ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

2026-06-24 02:06:17 UTC (buildkit.dockerfile.v0)

ENV LANG=C.UTF-8

2026-06-24 02:06:17 UTC (buildkit.dockerfile.v0)

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

2026-06-24 02:06:17 UTC (buildkit.dockerfile.v0)

ENV GPG_KEY=A035C8C19219BA821ECEA86B64E628F8D684696D

2026-06-24 02:06:17 UTC (buildkit.dockerfile.v0)

ENV PYTHON_VERSION=3.11.15

2026-06-24 02:06:17 UTC (buildkit.dockerfile.v0)

ENV PYTHON_SHA256=272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625

2026-06-24 02:17:37 UTC (buildkit.dockerfile.v0)

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 $(test "${gnuArch%%-*}" != 'riscv64' && echo '--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 -rt dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | 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 install --disable-pip-version-check --no-cache-dir --no-compile 'setuptools==79.0.1' 'wheel<0.46' ; pip3 --version # buildkit

2026-06-24 02:17:37 UTC (buildkit.dockerfile.v0)

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

2026-06-24 02:17:37 UTC (buildkit.dockerfile.v0)

CMD ["python3"]

2026-07-03 13:19:27 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-07-03 13:19:27 UTC (buildkit.dockerfile.v0)

ENV TZ=Asia/Shanghai

2026-07-03 13:19:27 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit

2026-07-03 13:22:40 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends gcc curl git gosu wkhtmltopdf fontconfig libjpeg62-turbo libxrender1 libxext6 && rm -rf /var/lib/apt/lists/* # buildkit

2026-07-03 13:22:41 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c groupadd -g 1000 dsa && useradd -u 1000 -g dsa -m dsa # buildkit

2026-07-03 13:22:41 UTC (buildkit.dockerfile.v0)

COPY requirements.txt . # buildkit

2026-07-03 13:30:17 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c pip install -r requirements.txt # buildkit

2026-07-03 13:30:19 UTC (buildkit.dockerfile.v0)

COPY *.py ./ # buildkit

2026-07-03 13:30:19 UTC (buildkit.dockerfile.v0)

COPY api/ ./api/ # buildkit

2026-07-03 13:30:19 UTC (buildkit.dockerfile.v0)

COPY data_provider/ ./data_provider/ # buildkit

2026-07-03 13:30:20 UTC (buildkit.dockerfile.v0)

COPY bot/ ./bot/ # buildkit

2026-07-03 13:30:20 UTC (buildkit.dockerfile.v0)

COPY src/ ./src/ # buildkit

2026-07-03 13:30:20 UTC (buildkit.dockerfile.v0)

COPY strategies/ ./strategies/ # buildkit

2026-07-03 13:30:20 UTC (buildkit.dockerfile.v0)

COPY /app/static ./static/ # buildkit

2026-07-03 13:30:20 UTC (buildkit.dockerfile.v0)

COPY docker/entrypoint.sh /usr/local/bin/docker-entrypoint.sh # buildkit

2026-07-03 13:30:25 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c python -c "import alphasift.dsa_adapter" # buildkit

2026-07-03 13:30:29 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c mkdir -p /app/data /app/logs /app/reports && chown -R dsa:dsa /app && chmod +x /usr/local/bin/docker-entrypoint.sh # buildkit

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c EF_DATA_DIR="$(python -c 'import efinance, pathlib; print(pathlib.Path(efinance.__file__).parent / "data")')" && mkdir -p "$EF_DATA_DIR" && chown -R dsa:dsa "$EF_DATA_DIR" # buildkit

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

ENV LOG_DIR=/app/logs

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

ENV DATABASE_PATH=/app/data/stock_analysis.db

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

ENV WEBUI_HOST=0.0.0.0

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

ENV API_PORT=8000

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

EXPOSE map[8000/tcp:{}]

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

VOLUME [/app/data /app/logs /app/reports]

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "curl -f http://localhost:8000/api/health || curl -f http://localhost:8000/health || python -c \"import sys; sys.exit(0)\""] "30s" "10s" "10s" "0s" '\x03'}

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

2026-07-03 13:30:34 UTC (buildkit.dockerfile.v0)

CMD ["python" "main.py" "--schedule"]

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete