Dockerfile - 如何回显到文件?

问题描述 投票:0回答:1

我试图在 dockerfile 中创建一个 bash 脚本,但是当我尝试运行它时,docker 说该文件不存在。我做错了什么?

FROM alpine
USER root
WORKDIR /

RUN mkdir /scripts
RUN echo '#!/bin/bash\necho "test"' >> /scripts/test.sh
RUN chmod +x /scripts/test.sh
ENTRYPOINT ["/scripts/test.sh"]
docker dockerfile
1个回答
0
投票

apline镜像没有安装bash,因此脚本的shebang是错误的。另外,脚本中的

\n
将按字面意思写入文件,而不是作为换行符。我建议使用
printf
而不是
echo
:

FROM alpine
USER root
WORKDIR /

RUN mkdir /scripts
RUN printf '#!/bin/sh\necho "test"' >> /scripts/test.sh
RUN chmod +x /scripts/test.sh
ENTRYPOINT ["/scripts/test.sh"]
© www.soinside.com 2019 - 2024. All rights reserved.