如何在 DOCKERFILE 中使用 "entry.sh" 作为 ENTRYPOINT?
How to use "entry.sh" as ENTRYPOINT in a DOCKERFILE?
我从以下 Dockerfile
构建了一个 docker 图像:
FROM cdi_monitoring:monitoring
ENTRYPOINT ["/bin/ash","-c","/entry.sh","/32ULC_subset"]
cdi_monitoring 是我正在扩展的另一个图像,它工作正常。我的工作目录的路径是 /home/casper/Downloads/data/32ULC_subset
.
现在,当我尝试 运行 上面构建的图像时,我收到错误 /32ULC_subset: line 1: /entry.sh: not found
。这是我 运行 构建 Dockerfile 的方式:
sudo docker run --name cdi_monitoring --rm -it -v /home/casper/Downloads/data/32ULC_subset/:/home/casper/Downloads/data/32ULC_subset/ cdi_monitoring:wrapper ./ChangeDetectionIL /home/casper/Downloads/data/32ULC_subset/ /home/casper/Downloads/data/32ULC_subset/Konfiguration_CD/IL_Liste.txt /home/casper/Downloads/data/32ULC_subset/Konfiguration_CD/
我该如何解决这个问题?
看来你的路径有问题。
您的文件 entry.sh 的位置是什么?它真的位于根路径(即:/)吗?
如果没有,您有两个解决方案。例如,假设您的文件位于 /home/casper/Downloads/data
,则:
- 解决方案 1:您需要更新您的
ENTRYPOINT
并提供完整路径
FROM cdi_monitoring:monitoring
ENTRYPOINT ["/bin/ash","-c","/home/casper/Downloads/data/entry.sh","/home/casper/Downloads/data/32ULC_subset"]
- 解决方案 2: 您需要在
ENTRYPOINT
之前设置您的 WORKDIR
FROM cdi_monitoring:monitoring
WORKDIR /home/casper/Downloads/data
ENTRYPOINT ["/bin/ash","-c","./entry.sh","./32ULC_subset"]
我从以下 Dockerfile
构建了一个 docker 图像:
FROM cdi_monitoring:monitoring
ENTRYPOINT ["/bin/ash","-c","/entry.sh","/32ULC_subset"]
cdi_monitoring 是我正在扩展的另一个图像,它工作正常。我的工作目录的路径是 /home/casper/Downloads/data/32ULC_subset
.
现在,当我尝试 运行 上面构建的图像时,我收到错误 /32ULC_subset: line 1: /entry.sh: not found
。这是我 运行 构建 Dockerfile 的方式:
sudo docker run --name cdi_monitoring --rm -it -v /home/casper/Downloads/data/32ULC_subset/:/home/casper/Downloads/data/32ULC_subset/ cdi_monitoring:wrapper ./ChangeDetectionIL /home/casper/Downloads/data/32ULC_subset/ /home/casper/Downloads/data/32ULC_subset/Konfiguration_CD/IL_Liste.txt /home/casper/Downloads/data/32ULC_subset/Konfiguration_CD/
我该如何解决这个问题?
看来你的路径有问题。
您的文件 entry.sh 的位置是什么?它真的位于根路径(即:/)吗?
如果没有,您有两个解决方案。例如,假设您的文件位于 /home/casper/Downloads/data
,则:
- 解决方案 1:您需要更新您的
ENTRYPOINT
并提供完整路径
FROM cdi_monitoring:monitoring
ENTRYPOINT ["/bin/ash","-c","/home/casper/Downloads/data/entry.sh","/home/casper/Downloads/data/32ULC_subset"]
- 解决方案 2: 您需要在
ENTRYPOINT
之前设置您的
WORKDIR
FROM cdi_monitoring:monitoring
WORKDIR /home/casper/Downloads/data
ENTRYPOINT ["/bin/ash","-c","./entry.sh","./32ULC_subset"]