Files
dagster/Dockerfile.system

39 lines
926 B
Docker

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"]
ENV PYTHONPATH=/system:$PYTHONPATH
WORKDIR $DAGSTER_HOME