我創建了一個Dockerfile如下:
From alpine:latest
WORKDIR /
COPY ./init.sh .
CMD ["/bin/sh", "./init.sh"]
init.sh和如下腳本檔案:
#!/bin/sh
mkdir -p mount_point
echo hello > ./mount_point/hello.txt
我使用這些構建影像:
docker build . -t test_build
并運行為
docker container run --rm --name test_run -it test_build sh
其中檔案夾()中只有上述兩個檔案。
在容器中,我可以在主機中找到init.sh帶有(可執行)的檔案。x
但是,沒有mount_point應由以下人員創建的檔案夾
CMD ["bin/sh", "./init.sh"]
請注意,當我在容器中運行以下任何內容時,它會mount_point按預期成功創建
sh init.sh
或者
/bin/sh init.sh
和
sh -c ./init.sh
你能告訴我哪里出錯了嗎?
uj5u.com熱心網友回復:
當你這樣做
docker container run --rm --name test_run -it test_build sh
最后的sh覆寫影像中的 CMD 定義并且 CMD 沒有運行。
要驗證您的腳本是否有效,您可以將腳本更改為類似這樣的內容
#!/bin/sh
echo Hello from the script!
mkdir -p mount_point
echo hello > ./mount_point/hello.txt
ls -al ./mount_point
然后在沒有 的情況下運行映像sh,您應該會看到“Hello”訊息和 ./mount_point 目錄中的目錄串列。
docker container run --rm --name test_run test_build
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485030.html
上一篇:.netMaui資料系結到外殼彈出項IsVisible屬性
下一篇:如何等待shell腳本完成?
