Я заметил, что airflow выпустил некоторые функции для запуска ноутбуков с использованием бумажной фабрики:
run_this = PapermillOperator(
task_id="run_example_notebook",
input_nb="/tmp/hello_world.ipynb",
output_nb="/tmp/out-{{ execution_date }}.ipynb",
parameters={"msgs": "Ran from Airflow at {{ execution_date }}!"}
)
Я пытаюсь использовать поток воздуха (расположенный на контейнере 1) для запуска некоторых ноутбуков с помощью anaconda env (расположенный на контейнере 2) ).
Диаграмма контейнеров
Что я сделал:
1- Создайте поток воздуха docker image:
FROM puckel/docker-airflow:1.10.2
USER root
RUN groupadd --gid 999 docker \
&& usermod -aG docker airflow
USER airflow
2- Создайте образ миниконды, который содержит все записные книжки, которые я хотел бы запустить:
FROM continuumio/miniconda
ENV EXECUTION_ID 111111
RUN conda install -y python=3.6.8 \
&& conda update conda
RUN conda install -y notebook ipykernel \
&& ipython kernel install --user
RUN pip install papermill
RUN mkdir notebook \
&& mkdir notebook/output
COPY code.ipynb ./notebook/code.ipynb
COPY params.yaml ./notebook/params.yaml
COPY run.sh ./notebook/run.sh
WORKDIR notebook
ENTRYPOINT ["bash", "./run.sh"]
3- Создайте docker файл композиции:
Я использую этот : github- docker -compose
Тем не менее, я все еще не понимаю, что мне добавить в этот docker compose, чтобы установить sh связь между окружением miniconda и потоком воздуха (находится в 2 разных контейнерах).
Что вы, ребята, рекомендуете делать?