为了账号安全,请及时绑定邮箱和手机立即绑定

在 docker 上安装运行时有意义吗?

在 docker 上安装运行时有意义吗?

Go
尚方宝剑之说 2021-09-10 10:37:00
我正在考虑在 docker 上部署一些应用程序(aws beanstalk 是提供者)。通过各种资源,我发现建议使用基本图像,在我的情况下是官方golang 图像,但我想知道为什么需要在容器上安装运行时(即 Golang)。您不应该在 docker 容器上部署二进制文件吗?
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

我不是 docker 爱好者,但总的来说,Go 运行时已编译到您的二进制文件中,除此之外您什么都不需要。Go 映像包含 SDK,而不是运行时。仅当您想在容器中构建应用程序时,它才有用。否则你不需要它。

从该图像的文档: The most straightforward way to use this image is to use a Go container as both the build and runtime environment.

因此,也许只是在映像上构建源代码是 Docker 模式,或者这只是某些人从解释型语言中养成的习惯。就我个人而言,当我部署 Go 应用程序(不是通过 docker)时,我在 CI 机器上构建了一个工件,这就是我正在部署的,而不是源。


查看完整回答
反对 回复 2021-09-10
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我更喜欢静态编译,然后只用你需要的用户空间构建一个最小的容器,这是一个例子

我个人喜欢在官方容器中构建,然后将二进制文件复制到我的部署容器中,我将 docker 注入到我的构建容器中,如下所示

docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):$(which docker)

这样我就在我的构建容器中构建了我的 docker 容器,只需添加带有 Dockerfile ADD 的二进制文件


查看完整回答
反对 回复 2021-09-10
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信