我是docker的新手,我想创建一个简单的映像,当我运行它时,可以在终端上看到其输出。我尝试了两种方法:
第一种方式:
echo "hello"
FROM Scratch ADD script.sh /usr/local/bin/run.sh CMD ["/usr/local/bin/run.sh"]
go build -t hello_image .
go run hello_image
standard_init_linux.go:175: exec user process caused "exec format error"
然后我尝试了第二种方法:
FROM Scratch CMD echo "This is a test."
Error response from daemon: oci runtime error: exec: "/bin/sh": stat /bin/sh: no such file or directory.
谁能帮助我解决这个错误,甚至可以解释我应该怎么做才能创建代码的简单映像并在运行时查看其输出。谢谢
该scratch
图像实际上是“空”的。有没有由基本图像提供的文件,最重要的是没有壳(bash
,sh
,等)。
当您尝试运行bash脚本时,它失败了,因为没有bash
二进制文件可以运行它。尝试运行echo
时失败,因为echo
该映像中不存在二进制文件。
如果要从中运行程序,则script
需要将其编译为静态ELF二进制文件。某些语言(例如lang)很容易做到。
如果您只想运行bash脚本,则应尝试创建alpine
一个最小的Linux发行版映像:
FROM alpine:3.4
CMD echo "hello"
或者
FROM alpine:3.4
RUN apk add -U bash
COPY script.sh /usr/local/bin/run.sh
CMD ["bash", "/usr/local/bin/run.sh"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句