Namespace
zhulinsen
Image / Tag
daily_stock_analysis:sha-dbfd8c1
Content Digest
sha256:52ef5256721b1b948adf3decf49bd946d922112757960fa32cb68ae71df6a594
Details
Created

2026-06-28 13:19:19 UTC

Size

456 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-06-28T13:14:50.389Z
  • 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
    dbfd8c1fb846b4cd50461a2f78ae90c0b2a3ec63
  • 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.24.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.9% (26.9 MB)

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

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

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

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

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

[#006] sha256:5a9dab2c1fff4d502d05506e1950af13c68489dc284e4b1b60eda8da4893e3ba - 44.61% (204 MB)

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

[#008] sha256:87fbf1ed507561673f8cee758be036e4903bd5de6845f76832225640d1a1b09b - 0.0% (1.76 KB)

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

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

[#011] sha256:98f114f25bdd32e8a2c7689945206d8a1f5405adbbc2d0b294e52b1e8d00da91 - 0.05% (244 KB)

[#012] sha256:f918c5be72c1adae0b16f8c22d0186d97040d275faee460b1ba057f0c14972b2 - 0.09% (429 KB)

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

[#014] sha256:59d2694a10c26e9ace939d175d3e2d6bb66e0a08ceb54ec3a0cd4455ec55343e - 0.55% (2.5 MB)

[#015] sha256:888e9efacf96620fe65a12747b2bc27999961dea0d4336ba1dfc0f48ef220e3f - 0.0% (14.2 KB)

[#016] sha256:c006cc3133769cf90ca0fcd3421978a6a0a33ff71d1c07d41f92b54b32423601 - 0.26% (1.17 MB)

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

[#018] sha256:72515c22f9dbdc527e5d68e8aa3132e639f5b46f2e4d590b17eb49058b9d903f - 0.02% (105 KB)

[#019] sha256:30cc9ec63d300909ff8d3c8735b527cbf7029f0939e636f4fea45d0cb8fb8f8c - 0.99% (4.51 MB)

[#020] sha256:715ec49368b1b5466ab3e85d7ccd7aa75d496bbbb146b3f2dda2958a534c8fc2 - 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-06-28 13:17:00 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-06-28 13:17:01 UTC (buildkit.dockerfile.v0)

ENV TZ=Asia/Shanghai

2026-06-28 13:17:01 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:17:36 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-06-28 13:17:36 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:17:36 UTC (buildkit.dockerfile.v0)

COPY requirements.txt . # buildkit

2026-06-28 13:19:15 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

COPY *.py ./ # buildkit

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

COPY api/ ./api/ # buildkit

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

COPY data_provider/ ./data_provider/ # buildkit

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

COPY bot/ ./bot/ # buildkit

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

COPY src/ ./src/ # buildkit

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

COPY strategies/ ./strategies/ # buildkit

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

COPY /app/static ./static/ # buildkit

2026-06-28 13:19:16 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:19:17 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:19:18 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-06-28 13:19:19 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-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

ENV LOG_DIR=/app/logs

2026-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

ENV DATABASE_PATH=/app/data/stock_analysis.db

2026-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

ENV WEBUI_HOST=0.0.0.0

2026-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

ENV API_PORT=8000

2026-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

EXPOSE map[8000/tcp:{}]

2026-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:19:19 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-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:19:19 UTC (buildkit.dockerfile.v0)

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

Details
Created

2026-06-28 13:29:58 UTC

Size

446 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2026-06-28T13:14:50.389Z
  • 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
    dbfd8c1fb846b4cd50461a2f78ae90c0b2a3ec63
  • 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.24.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.01% (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:8cf3df2113268eaab8620861a904548dc75d6253a02f53a0b87f7bbbe4067485 - 0.0% (93 Bytes)

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

[#006] sha256:6a0568ff0fd579e93573abce80b2a096fe85c4692185a8f576dacd9fd3a48d8a - 44.16% (197 MB)

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

[#008] sha256:49ca46d6092661d96de103aff2e2a8a3f3f32228943cf8d4c8a7258cb80aee3e - 0.0% (1.76 KB)

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

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

[#011] sha256:27adff311054d7b542b668675fba47a2e15dc42be457c2f395521bf5de8a5db9 - 0.05% (244 KB)

[#012] sha256:3dd52f17b7d68573515ade602f6cf32d80451e43c73ba6d5d1530ef10b9b6a94 - 0.09% (429 KB)

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

[#014] sha256:d92385869e3b29a4e5594306d2cfa82ec38d39021edbbf20f23da49cd3bd616b - 0.56% (2.5 MB)

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

[#016] sha256:403ab6829b791e1c8c3cbc564e6569995728ffbd2e77e12683532af76e3b75d9 - 0.26% (1.17 MB)

[#017] sha256:779910e53d0467426dbfe0c868ac0b70dba494ce12a7c51f5f4fe9dfff0a7ef4 - 0.0% (1.05 KB)

[#018] sha256:c9ddd89c3264fb4ae523dbdb6d53472cfa8802fe7e1b629a4f96b659aedc10e5 - 0.02% (105 KB)

[#019] sha256:6a4a134ba48a8219662744cb4f7c1b9ae8f961b6c75e17f301f4cba23f14490c - 1.01% (4.51 MB)

[#020] sha256:be9366ee86ac5a3661e7a7d51624b93d8fac0084b4bb22d6d7d12e2442b2a8f0 - 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-06-28 13:17:00 UTC (buildkit.dockerfile.v0)

WORKDIR /app

2026-06-28 13:17:01 UTC (buildkit.dockerfile.v0)

ENV TZ=Asia/Shanghai

2026-06-28 13:17:01 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:20:35 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-06-28 13:20:36 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:20:36 UTC (buildkit.dockerfile.v0)

COPY requirements.txt . # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

COPY *.py ./ # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

COPY api/ ./api/ # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

COPY data_provider/ ./data_provider/ # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

COPY bot/ ./bot/ # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

COPY src/ ./src/ # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

COPY strategies/ ./strategies/ # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

COPY /app/static ./static/ # buildkit

2026-06-28 13:29:46 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:29:52 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:29:52 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-06-28 13:29:58 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-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

ENV PYTHONUNBUFFERED=1

2026-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

ENV LOG_DIR=/app/logs

2026-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

ENV DATABASE_PATH=/app/data/stock_analysis.db

2026-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

ENV WEBUI_HOST=0.0.0.0

2026-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

ENV API_PORT=8000

2026-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

EXPOSE map[8000/tcp:{}]

2026-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:29:58 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-06-28 13:29:58 UTC (buildkit.dockerfile.v0)

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

2026-06-28 13:29:58 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