【发布时间】:2017-11-07 23:59:38
【问题描述】:
我是容器世界的新手,正在探索在容器上运行我的应用程序的选项。以下是我所看到的:
当我将编译和构建 C/C++ 二进制文件作为 docker 映像本身的一部分时,它可以正常工作,没有任何问题。容器启动,一切正常。
如果我尝试在容器中使用 CMD ["./helloworld"] 运行已编译且现有的二进制文件,则会引发此错误 standard_init_linux.go:185: exec 用户进程导致“exec 格式错误”。
关于如何摆脱这个问题的任何想法?这似乎是一个已经解决的基本问题
这是我的 dockerfile:
来自 ubuntu
COPY . /Users/test//Documents/CPP-Projects/HelloWorld-Static
WORKDIR /Users/test/Documents/CPP-Projects/HelloWorld-Static
CMD ["./build/exe/hellostatic/hellostatic"]
她是我的 exe:
gobjdump -a build/exe/hellostatic/hellostatic
build/exe/hellostatic/hellostatic: file format mach-o-x86-64
build/exe/hellostatic/hellostatic
这是错误:
docker run test
standard_init_linux.go:185: exec user process caused “exec format error”
【问题讨论】:
-
在提问之前您不阅读文档吗?
-
这与 C 或 C++ 语言有什么关系?二进制可执行文件可以从多种语言生成,例如 FORTRAN 和 BASIC。
-
恕我直言,您知道自己在做什么吗?
标签: docker executable