java - Docker CMD - 脚本路径
问题描述
如何将脚本文件的路径传递到CMD
Dockerfile 中?
这是我的 Dockerfile
FROM openjdk:8-jdk-alpine as base
EXPOSE 8080
WORKDIR '/app'
COPY run/ .
RUN mvn clean install
FROM openjdk:8-jdk-alpine
WORKDIR '/app'
COPY --from=base /app/data/startup.sh ./startup.sh
RUN ["chmod", "+x", "startup.sh"]
CMD ["startup.sh", "start"]
当我给CMD ["/app/startup.sh", "start"]
时,抛出以下错误
Cannot start service myapp: OCI runtime create failed:
container_linux.go:367: starting container process caused: exec: "/app/startup.sh": stat
/app/startup.sh: no such file or directory: unknown
文档说路径将相对于 WORKDIR,所以我尝试像现在一样单独传递脚本名称 -CMD ["startup.sh", "start"]
这导致以下错误:
Cannot start service myapp: OCI runtime create failed:
container_linux.go:367: starting container process caused: exec: "service.sh": executable file
not found in $PATH: unknown
startup.sh 是一个带有 shebang 的简单脚本文件 - #!/bin/sh
我在这里错过了什么吗?我正在为 Windows 使用 docker 桌面,当我运行docker-compose up
仅供参考时出现错误。
请分享我如何解决这个问题。谢谢
解决方案
CMD ["/app/data/startup.sh", "start"]
应该管用
推荐阅读
- .net-core - 使用 NLog 在 ASP .Net Core 5 Web API 中使用 Pomelo 提供程序登录到 MySql 数据库
- python - python plotly中x轴标题的方向
- postgresql - PostgreSQL 反义词
- node.js - 如何通过 cpanel 文件管理器安装 node.js 源代码
- css - ng serve 命令出错。./ 节点模块/@angular-devkit/build
- javascript - 如何将 React-mapbox-gl 约束到其容器?
- node.js - 以编程方式设置域 node.js 应用程序
- stm32 - 如何在 STM32 中禁用 STOP 模式
- python - 如何在 TOC(目录)之前插入段落
- android - 使用 Flutter 将图像上传到通用 Google Drive 帐户