dagster-dvf (main-20261005054640-4c784a7)
Published 2026-10-05 05:52:59 +00:00 by benjamin
Installation
docker pull git.delpech.dev/benjamin/dagster-dvf:main-20261005054640-4c784a7sha256:521382551ba89ca83c8e2feacaeb7fb6a00e74de1e0dcb5cb7491f954e414ef4Image layers
| # debian.sh --arch 'amd64' out/ 'trixie' '@1789689600' |
| ENV PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates netbase tzdata ; apt-get dist-clean # buildkit |
| ENV GPG_KEY=7169605F62C751356D054A26A821E680E5FA6305 |
| ENV PYTHON_VERSION=3.13.16 |
| ENV PYTHON_SHA256=f4b1bfb3c79b5bb11b8d228a12504163b4c0dab4d679828d8f5f26b6cb6ab35d |
| RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev g++ 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"; arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; case "$arch" in amd64|arm64) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"; ;; i386) ;; *) EXTRA_CFLAGS="${EXTRA_CFLAGS:-} -fno-omit-frame-pointer"; ;; esac; 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; apt-get dist-clean; export PYTHONDONTWRITEBYTECODE=1; python3 --version; pip3 --version # buildkit |
| 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 |
| CMD ["python3"] |
| ARG MC_VERSION=RELEASE.2025-08-13T08-35-41Z |
| ARG MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 |
| RUN |2 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends git curl libarchive-tools && curl -fsSL "https://github.com/minio/mc/releases/download/${MC_VERSION}/mc.linux-amd64.${MC_VERSION}" -o /usr/local/bin/mc && echo "${MC_SHA256} /usr/local/bin/mc" | sha256sum -c - && chmod +x /usr/local/bin/mc && rm -rf /var/lib/apt/lists/* # buildkit |
| WORKDIR /app |
| COPY /uv /uvx /usr/local/bin/ # buildkit |
| COPY dagster_dvf_poc/pyproject.toml dagster_dvf_poc/uv.lock dagster_dvf_poc/ # buildkit |
| RUN |2 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 /bin/sh -c cd dagster_dvf_poc && uv export --locked --no-dev --no-emit-project --format requirements-txt -o /tmp/requirements.txt && cd .. && pip install --no-cache-dir --require-hashes -r /tmp/requirements.txt # buildkit |
| ENV DUCKDB_EXTENSION_DIRECTORY=/opt/duckdb-extensions |
| RUN |2 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 /bin/sh -c python -c "import duckdb; c = duckdb.connect(); c.execute(\"SET extension_directory = '/opt/duckdb-extensions'\"); [c.execute(f'INSTALL {e}') for e in ('ducklake', 'postgres', 'httpfs', 'spatial')]; [c.execute(f'LOAD {e}') for e in ('ducklake', 'postgres', 'httpfs', 'spatial')]; print('duckdb', duckdb.__version__, 'extensions OK')" && chmod -R a+rX /opt/duckdb-extensions # buildkit |
| RUN |2 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 /bin/sh -c python -c "from sqlalchemy.engine import make_url; import psycopg2; d = make_url('postgresql://u:p@h/db').get_dialect().driver; assert d == 'psycopg2', f'pilote postgresql par défaut = {d} (attendu psycopg2)'; print('pilote postgresql OK :', d)" # buildkit |
| COPY dagster_dvf_poc/ dagster_dvf_poc/ # buildkit |
| COPY dlt/ dlt/ # buildkit |
| COPY dbt/ dbt/ # buildkit |
| COPY scripts/*.py scripts/ # buildkit |
| ENV PYTHONPATH=/app/scripts |
| RUN |2 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 /bin/sh -c pip install --no-cache-dir --no-deps ./dagster_dvf_poc && pip check # buildkit |
| RUN |2 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 /bin/sh -c cp dbt/profiles.yml.example dbt/profiles.yml && cd dbt && dbt deps && DBT_DVF_PASSWORD=postgres DBT_DVF_SCHEMA=dbt dbt parse && cd .. && test -f /app/dbt/target/manifest.json || (echo "POKA-YOKE FAIL: /app/dbt/target/manifest.json absent après 'dbt parse' — vérifier les layers Kaniko cache" && exit 1) # buildkit |
| ARG APP_VERSION=20261005054640-4c784a7 |
| ENV APP_VERSION=20261005054640-4c784a7 |
| RUN |3 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 APP_VERSION=20261005054640-4c784a7 /bin/sh -c git init -q && git config user.email "ci@alert-immo.local" && git config user.name "ci" && git commit -q --allow-empty -m "build ${APP_VERSION}" # buildkit |
| ENV PYTHONUNBUFFERED=1 W3A_CONTRACTS_DIR=/app/dagster_dvf_poc/contracts PYTHONFAULTHANDLER=1 DAGSTER_HOME=/app/dagster_home DBT_PROFILES_DIR=/app/dbt |
| RUN |3 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 APP_VERSION=20261005054640-4c784a7 /bin/sh -c mkdir -p /app/dagster_home # buildkit |
| EXPOSE map[4000/tcp:{}] |
| COPY dagster_dvf_poc/poka-yoke-entrypoint.sh /usr/local/bin/ # buildkit |
| RUN |3 MC_VERSION=RELEASE.2025-08-13T08-35-41Z MC_SHA256=01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891 APP_VERSION=20261005054640-4c784a7 /bin/sh -c chmod +x /usr/local/bin/poka-yoke-entrypoint.sh # buildkit |
| CMD ["dagster" "api" "grpc" "-h" "0.0.0.0" "-p" "4000" "-f" "/app/dagster_dvf_poc/definitions.py"] |
Labels
| Key | Value |
|---|---|
| org.opencontainers.image.created | 2026-10-05T05:50:20Z |
| org.opencontainers.image.revision | 4c784a731cb387c46890cd72e536639105b98c40 |
Details
2026-10-05 05:52:59 +00:00
Versions (481)
View all
Container
0
OCI / Docker
linux/amd64
306 MiB
gate-20261006093838-5545cd0
2026-10-06
ci-37444353435-1
2026-10-06
gate-20261006093643-eedaf0e
2026-10-06
ci-37444133536-1
2026-10-06
gate-20261006092942-3e0376d
2026-10-06