我正在尝试使用Dockerfile使用Docker。
我的Dockerfile如下,我在哪里使用debian linux系统。
FROM debian:jessie
ENV DEBIAN_FRONTEND noninteractive
ARG AIRFLOW_VERSION=1.7.1.3
ENV AIRFLOW_HOME /usr/local/airflow
..
..
COPY script/entrypoint.sh /entrypoint.sh
COPY config/airflow.cfg ${AIRFLOW_HOME}/airflow.cfg
..
..
USER airflow
WORKDIR ${AIRFLOW_HOME}
ENTRYPOINT ["/entrypoint.sh"]
因此,当我运行docker build -t test .
时,它会毫无问题地构建。
但是,当我运行docker run -p 8080:8080 test
时。
它抛出以下错误:
container_linux.go:247: starting container process caused "exec: \"/entrypoint.sh\": permission denied"
docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/entrypoint.sh\": permission denied".
我做错了什么?
答案 0 :(得分:8)
在调用ENTRYPOINT之前,您需要在chmod +x entrypoint.sh
之前更改bash文件的权限。因此,请将代码更改为以下内容:
USER airflow
WORKDIR ${AIRFLOW_HOME}
RUN chmod +x entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
重建图像并运行容器,它应该可以工作。
答案 1 :(得分:0)
我在dockerfolder中更改了入口点的位置并重建并成功!