我试图用我的二进制文件(用Rust编写)创建一个图像,但我得到了不同的错误.这是我的Dockerfile
:
FROM scratch
COPY binary /
COPY .env /
COPY cert.pem /etc/ssl/
ENV RUST_BACKTRACE 1
CMD /binary
建筑完成得很好,但当我试着运行它时,我发现:
$ docker run binary
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory": unknown.
ERRO[0000] error waiting for container: context canceled
这是:
$ docker run binary /binary
standard_init_linux.go:195: exec user process caused "no such file or directory"
我不知道该怎么办.这个错误消息在我看来很奇怪.根据official Docker documentation条规则,它必须有效.
系统信息:最新Arch Linux和Docker:
Docker version 18.02.0-ce, build fc4de447b5
我用C++程序测试,它工作良好,既有CLAN,又有GCC.
它不能处理基于scratch
、alpine
、busybox
或bash
的图像,但可以处理postgresql
、ubuntu
和debian
个图像.确切的问题与Rust 和轻量级docker图像有关——否则一切正常.