我在 Dockerfile 中有这个
WORKDIR /app
COPY run.sh .
ENTRYPOINT ./run.sh
它说它找不到run.sh,但是当我找到时
WORKDIR /app
COPY run.sh .
ENTRYPOINT bash run.sh
然后它工作。为什么会这样?
我在 Dockerfile 中有这个
WORKDIR /app
COPY run.sh .
ENTRYPOINT ./run.sh
它说它找不到run.sh,但是当我找到时
WORKDIR /app
COPY run.sh .
ENTRYPOINT bash run.sh
然后它工作。为什么会这样?
我可以使用第一个 Dockerfile 使其工作,但我需要为 run.sh 设置执行权限。这有效:
FROM alpine
WORKDIR /app
COPY run.sh .
RUN chmod +x run.sh
ENTRYPOINT ./run.sh
检查这是否适合您。第二个版本在没有权限的情况下工作,因为它直接传递给bash
解释器,解释器不会检查可执行标志。
听起来 run.sh 是不可执行的。您是否为 run.sh 设置了可执行位(如chmod +x run.sh
)?