我如何 运行 jupyter in airflow with docker-compose?
How can I run jupyter in airflow with docker-compose?
我想在我的 dockerized airflow 上安装一个 jupyter 服务器,这样我就可以在那个环境中更轻松地开发。我从 看到。您可以轻松地 运行 docker 中的多个命令-与 'bash -c' 组合。
这是我试过的方法:
command: bash -c "airflow webserver ; nohup jupyter notebook --ip 0.0.0.0 --no-browser &"
也尝试过:
command: bash -c "airflow webserver && nohup jupyter notebook --ip 0.0.0.0 --no-browser &"
我知道这是可能的,因为我可以做类似的事情:
docker exec -it -u airflow 8b2 jupyter notebook --ip 0.0.0.0 --NotebookApp.token='airflow' --no-browser
这当然需要为 j:
添加端口 8888:8888 映射
ports:
- ${AIRFLOW_WEBSERVER_PORT:-8080}:8080
- 8888:8888
谢谢!
在容器中部署多个应用程序不是最佳做法。每个容器应该做一件事并且把它做好。 reference
您可以执行以下操作:
- 将 Airflow 和 Jupyter 分离到不同的容器中。
- 使用 Docker 网络连接两者。
让我向您展示 this project 可以满足您的大部分需求并且对我来说效果很好。看看它。你可能会从中得到启发。
正如@Numb95 指出的那样,最好通过指定专用的 jupyter 容器来解决问题。
此时的'quick-start'docker-compose为:https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml.
使用上面的快速启动 docker-compose 作为 guid,下面的代码可以放在 docker-compose.yaml
中,但是需要其中指定的气流图像用 jupyter-core
和 jupyter
:
airflow-jupyter:
<<: *airflow-common
#image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.2.2}
image: <CUSTOM_IMAGE_DESCRIBED_ABOVE>
container_name: airflow_jupyter
command: bash -cx "jupyter notebook --ip 0.0.0.0 --NotebookApp.token='airflow' --no-browser"
ports:
- 8888:8888
restart: always
depends_on:
<<: *airflow-common-depends-on
airflow-init:
condition: service_completed_successfully
要安装 jupyter 包,需要重建 DockerFile 以包括:
RUN pip install -U jupyter-core --user
RUN pip install -U jupyter --user
RUN chmod -R 775 /home/airflow/.local/share/jupyter
我想在我的 dockerized airflow 上安装一个 jupyter 服务器,这样我就可以在那个环境中更轻松地开发。我从
这是我试过的方法:
command: bash -c "airflow webserver ; nohup jupyter notebook --ip 0.0.0.0 --no-browser &"
也尝试过:
command: bash -c "airflow webserver && nohup jupyter notebook --ip 0.0.0.0 --no-browser &"
我知道这是可能的,因为我可以做类似的事情:
docker exec -it -u airflow 8b2 jupyter notebook --ip 0.0.0.0 --NotebookApp.token='airflow' --no-browser
这当然需要为 j:
添加端口 8888:8888 映射ports:
- ${AIRFLOW_WEBSERVER_PORT:-8080}:8080
- 8888:8888
谢谢!
在容器中部署多个应用程序不是最佳做法。每个容器应该做一件事并且把它做好。 reference
您可以执行以下操作:
- 将 Airflow 和 Jupyter 分离到不同的容器中。
- 使用 Docker 网络连接两者。
让我向您展示 this project 可以满足您的大部分需求并且对我来说效果很好。看看它。你可能会从中得到启发。
正如@Numb95 指出的那样,最好通过指定专用的 jupyter 容器来解决问题。
此时的'quick-start'docker-compose为:https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml.
使用上面的快速启动 docker-compose 作为 guid,下面的代码可以放在 docker-compose.yaml
中,但是需要其中指定的气流图像用 jupyter-core
和 jupyter
:
airflow-jupyter:
<<: *airflow-common
#image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.2.2}
image: <CUSTOM_IMAGE_DESCRIBED_ABOVE>
container_name: airflow_jupyter
command: bash -cx "jupyter notebook --ip 0.0.0.0 --NotebookApp.token='airflow' --no-browser"
ports:
- 8888:8888
restart: always
depends_on:
<<: *airflow-common-depends-on
airflow-init:
condition: service_completed_successfully
要安装 jupyter 包,需要重建 DockerFile 以包括:
RUN pip install -U jupyter-core --user
RUN pip install -U jupyter --user
RUN chmod -R 775 /home/airflow/.local/share/jupyter