azure - 将应用程序部署到 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"]
解决方案
有了你贴的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 脚本。
推荐阅读
- javascript - 请咨询数据对象:)
- flutter - 无法在 Flutter TextField 小部件中垂直居中输入文本和后缀
- javascript - 将父/子结构转换为对象
- excel - 运行两个 Internet Explorer 实例
- java - 订购一个 ArrayList
基于特定值 - python - 使用用户类型在 Django 中不起作用
- wpf - 如何为属性值右侧的小方块添加特征(在属性窗口中)?
- php - 未显示任何错误消息,但使用 PHP 的 BigQuery 中没有数据
- c++ - 使用 sizeof() 确定 ArraySize
- flask - 使用布尔值或日期时,sqlalchemy 案例无法正常工作