首页 > 解决方案 > 将应用程序部署到 Azure 时出现 FileNotFound 异常

问题描述

所以,我有一个 Spring Boot 应用程序,它部分接收一个文件并读取内容。它在本地完美运行,但是当我将它放在 Docker 映像上并部署到 azure 时,我得到一个找不到文件的错误。这是我的码头文件:

FROM [place]
VOLUME /tmp
ARG jarFileName
RUN mkdir /app 
COPY $jarFileName /app/app.jar
RUN sh -c 'touch /app/app.jar'
ENV JAVA_OPTS=""
COPY startup.sh /app/startup.sh
RUN ["chmod", "+x", "/app/startup.sh"]
CMD ["startup.sh"]

标签: azuredocker

解决方案


有了你贴的Dockerfile,我觉得有几个地方需要注意。

第一个是COPY $jarFileName /app/app.jar如果您没有在命令中传递变量 jarFileName,该行将得到错误docker run

第二个是你应该检查当前目录COPY startup.sh /app/startup.sh是否有文件startup.sh。

最后就是那行了CMD ["startup.sh"],我觉得你应该改成CMD ["./startup.sh"]sh script.sh通常,我们使用命令或者./script.sh如果脚本具有权限“x”来执行 shell 脚本。


推荐阅读