gpt4 book ai didi

docker中的bash文件没有执行

转载 作者:行者123 更新时间:2023-12-02 20:47:50 25 4
gpt4 key购买 nike

我希望我的 bash 文件在我运行 docker 镜像时运行,所以首先我在一个新目录中创建了 Dockerfile,比如 demo在那个目录演示中,我创建了一个新目录 home在那个目录中,我有我的 bash 文件 - testfile.sh .
这是我的 docker 文件 -

FROM ubuntu
MAINTAINER Aman Kh
COPY . /home
CMD /home/testfile.sh

使用命令构建它 - sudo docker build -t amankh99/hello .收到以下输出 -
Sending build context to Docker daemon 3.584kB
Step 1/4 : FROM ubuntu
—> 0458a4468cbc
Step 2/4 : MAINTAINER Aman Kh
—> Using cache
—> 98fbe31ed233
Step 3/4 : COPY . /home
—> Using cache
—> 7e52ff3439e2
Step 4/4 : CMD /home/testfile.sh
—> Using cache
—> 1d2660df6387
Successfully built 1d2660df6387
Successfully tagged amankh99/hello:latest

但是当我用命令运行它时
sudo docker run --name test -it amankh99/hello

它说

bin/sh: 1: /home/testfile.sh: not found



构建成功后为什么找不到文件。
我想在图像中转换这个容器并希望在 docker hub 上推送,这样当我可以在运行 hello-world(sudo docker run hello-world) 时使用简单的运行命令运行它时,我会执行我的 bash 文件,所以我可以做些什么改变 dockerfile 来实现这一点。

最佳答案

OP 说明

I created the Dockerfile inside a new directory say demo and in that directory demo I created a new directory home and in that directory I’ve my bash file - testfile.sh.



所以根据你的描述
demo/
+--- Dockerfile
+--- home/
+--- testfile.sh

您需要复制 home目录到 /home
FROM ubuntu
COPY home /home
CMD /home/testfile.sh

如果你这样做 COPY . /home , 你的 home/testfile.sh将被复制到 /home/home/testfile.sh
如果您只想复制您的 testfile.sh , 然后这样做
COPY home/testfile.sh /home/

关于docker中的bash文件没有执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com