在运行镜像时需要启动多个命令,这时候需要创建一个sh文件,并且在Dockerfile中用 ENTRYPOINT命令启动.sh文件。                                                                                                   

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD my-test.jar /
COPY my-test.sh /

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' >/etc/timezone \ && chmod 777 my-test.sh
EXPOSE 8090
ENTRYPOINT ["sh","my-test.sh"]

   这时候运行docker build 命令时有可能发生错误:“no such file or directory”                           

 解决方法: 1.查看文件路径是否正确。                                                   

                    2. 查看sh文件是否 CF 格式的。如果你是在windows环境下创建的shell文件更需要注意这个问题: 使用notepad++ 修改 

Use notepad++, go to edit -> EOL conversion -> change from CRLF to LF.

 也可以如下操作:notepad++ 右下角 显示的Windows(CR LF) 鼠标右键 转为 Unix(FL)

 

 参考地址:stack overflow

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐