将Java与Airflow和Docker结合使用
我有一个用例,我想通过Airflow运行一个jar文件,所有这些都必须在Mac上的Docker容器中运行
我尝试过单独安装java,也尝试过将java_HOME(主机)安装到容器上
这是我的码头工人。亚马尔:
airflow:
image: 'puckel/docker-airflow:1.10.9'
hostname: airflow
container_name: airflow
volumes:
- ${PWD}/airflow/dags:/usr/local/airflow/dags
- ${JAVA_HOME}:/usr/local/bin/java //FWD MOUNTING JAVA_HOME
这样,我在/usr/local/bin/中得到一个java目录,其中包含数据,但java -version
返回Permission denied
。
将其更改为${JAVA_HOME}/bin/java:/usr/local/bin/java
将返回exec format error
处理这个用例的正确方法是什么
# 1 楼答案
我认为您得到了
Permission denied
,因为您正在使用用户airflow
运行docker你能试着把它作为
root
运行吗?(这是有风险的!不要在生产中使用-这只是一种临时解决办法)。避免使用root
用户编辑: 除了安装本地Java,还可以考虑安装不同的java:
并将
Dockerfile
添加到同一目录中: