我正在为go应用程序构建我的第一个Dockerfile,但我不理解go build
或go install
被认为是Docker容器的必要组成部分。
我知道可以使用muilt-stage来避免这种情况,但我不知道为什么首先将它放在容器映像中。
我期望的是
我有一个go应用程序'go-awesome'
我可以通过cmd / go-awesome
我的Dockerfile包含的内容不多于
复制真棒。
CMD [“棒极了”]
此配置的缺点是什么?我反而会得到什么
复制。 。
RUN go get。/ ...
运行go install ./..
指向显示构建go应用程序作为Dockerfile一部分的帖子的链接
https://www.callicoder.com/docker-golang-image-container-example/
https://blog.codeship.com/building-minimal-docker-containers-for-go-applications/
https://www.cloudreach.com/blog/containerize-this-golang-dockerfiles/
https://medium.com/travis-on-docker/how-to-dockerize-your-go-golang-app-542af15c27a2
答案 0 :(得分:1)
您可以在本地编译应用程序,只需将可执行文件复制到合适的docker映像中,这是正确的。
但是,在docker内部构建编译应用程序有很多好处,特别是对于具有多个协作者的大型项目。具体来说,有以下原因: