39 lines
926 B
Docker
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
|