注意 为简单起见,以下文件和命令,均在一个目录下执行
以下是c语言版本, go语言自行百度,差别就是编译时启用cgo和静态链接
一、准备docker环境
二、c语音编写helloworld
#include <stdio.h>
int main() {
printf("Hello, World\n");
return 0;
}
静态编译(一定要静态编译,否则会依赖动态库,导致报错 (no such file…))
gcc -static main.c
如果报错 /usr/bin/ld: 找不到 -lc
, centos 环境执行如下命令。
yum install glibc-static
Ubuntu如下:
sudo apt-get update
sudo apt-get install libc6-dev
三、编写Dockerfile文件
## cat Dockerfile
FROM scratch
ADD a.out /a.out
CMD ["/a.out"]
生成docker image
docker build -t hello:latest .
四、执行
docker run hello
...