0

我在 Dockerfile 中有这个

WORKDIR /app
COPY run.sh .
ENTRYPOINT ./run.sh

它说它找不到run.sh,但是当我找到时

WORKDIR /app
COPY run.sh .
ENTRYPOINT bash run.sh

然后它工作。为什么会这样?

4

2 回答 2

0

我可以使用第一个 Dockerfile 使其工作,但我需要为 run.sh 设置执行权限。这有效:

FROM alpine
WORKDIR /app
COPY run.sh .
RUN chmod +x run.sh
ENTRYPOINT ./run.sh

检查这是否适合您。第二个版本在没有权限的情况下工作,因为它直接传递给bash解释器,解释器不会检查可执行标志。

于 2019-05-01T21:55:30.700 回答
0

听起来 run.sh 是不可执行的。您是否为 run.sh 设置了可执行位(如chmod +x run.sh)?

于 2019-05-01T21:57:10.627 回答