2017-06-21 38 views
1

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

什么是我做错了吗?

+4

在应用程序回购中执行此操作:'chmod + x entrypoint.sh' – Robert

+0

Robert的权利。 'container_linux.go:247'错误只是指从容器的入口点或CMD引发的错误。在这种情况下,权限问题。 – mkasberg

+0

你是对的罗伯特,谢谢.. –

回答

0

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

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

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