FROM python:3.12-slim # Install envsubst RUN apt-get update && apt-get install -y gettext # Dagster libraries to run both dagit and the dagster-daemon. Does not # need to have access to any pipeline code. COPY dagster-requirements.txt requirements.txt RUN pip install uv RUN uv pip install -r requirements.txt --system RUN uv pip install polars-lts-cpu --system # Set $DAGSTER_HOME and copy dagster instance and workspace YAML there ENV DAGSTER_HOME=/opt/dagster/home/ RUN mkdir -p $DAGSTER_HOME # COPY dagster.yaml workspace.yaml $DAGSTER_HOME # Create entrypoint that renders the dagster.yaml from a template RUN cat << 'EOF' > /entrypoint.sh #!/bin/sh set -e echo "Rendering dagster.yaml from template..." envsubst < dagster.yaml.template > dagster.yaml echo "Starting Dagster: $@" exec "$@" EOF RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] WORKDIR $DAGSTER_HOME