构build运行编译后的代码的小容器

从https://docs.docker.com/articles/baseimages/

我正在试图build立一个基本的图像来运行编译去代码,从: https : //github.com/tianon/dockerfiles/tree/master/true

  1. 我试图复制到docker的true.go
    然后:exec:“/ true”:权限被拒绝
  2. 也试图冲进去,然后:“bash”
    然后:$ PATH中找不到可执行文件
  3. 还尝试使用debootstrap raring raring> / dev / null
    然后:“$ bash”:$ PATH中找不到可执行文件

你怎么做到这一点?

谢谢

我不确定我完全遵循。

来自链接项目的Dockerfile会生成一个没有任何东西的图像,除了一个可执行文件 – 将不会有shell或编译器,所以运行bash将是不可能的。 它通过使用特殊的基本图像来完成,它只是一个完全空的文件系统。

如果您使用Dockerfile(docker docker build -t go-image . )克隆存储库并构build映像,它将直接将可执行文件直接复制到映像中(请注意,Dockerfile复制可执行文件true-asm ,而不是源代码true.go )。 如果你然后使用docker run来启动图像,它会运行它( docker run go-image )。

那有意义吗? 代码在本地编译(或由另一个容器编译),编译后的独立可执行文件自行放置到映像中。

一般来说,你不希望这样做,当你开始的时候肯定不会这样做 – 使用包含基本工具(如shell)的golangdebian映像会更容易。