在docker run中获得权限被拒绝

时间:2017-06-21 23:20:21

标签: docker

我正在尝试使用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".

我做错了什么?

2 个答案:

答案 0 :(得分:8)

在调用ENTRYPOINT之前,您需要在chmod +x entrypoint.sh之前更改bash文件的权限。因此,请将代码更改为以下内容:

USER airflow
WORKDIR ${AIRFLOW_HOME}
RUN chmod +x entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

重建图像并运行容器,它应该可以工作。

答案 1 :(得分:0)

我在dockerfolder中更改了入口点的位置并重建并成功!