21 lines
802 B
Text
21 lines
802 B
Text
|
|
# One-shot Iceberg sync for the ERA5 lake: registers new hive tiles from the
|
||
|
|
# era5-thermograph bucket into the iceberg/era5_daily table (see
|
||
|
|
# sync_iceberg.py). Everything ships as manylinux wheels — no toolchain.
|
||
|
|
FROM python:3.12-slim
|
||
|
|
|
||
|
|
# The pyiceberg extras pull sqlalchemy (sqlite catalog), pyarrow (FileIO +
|
||
|
|
# parquet footers) and s3fs (bucket listing/manifest reads).
|
||
|
|
COPY requirements.txt /tmp/requirements.txt
|
||
|
|
RUN pip install --no-cache-dir -r /tmp/requirements.txt
|
||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
COPY sync_iceberg.py .
|
||
|
|
|
||
|
|
# The sqlite catalog lives on a volume so runs share it; losing it is fine
|
||
|
|
# (the next run re-registers the table from its latest metadata JSON).
|
||
|
|
ENV THERMOGRAPH_ICEBERG_CATALOG_DB=/state/iceberg-catalog.db \
|
||
|
|
PYTHONUNBUFFERED=1
|
||
|
|
VOLUME /state
|
||
|
|
|
||
|
|
ENTRYPOINT ["python", "sync_iceberg.py"]
|