我正在尝试使用Docker,在Go中编写应用程序,我正在容器中构建/运行它。我正在使用Docker Compose将其拼接到数据库中,并且我传入了环境变量。
问题是,为了查看我的更改,我必须重建Docker镜像。这需要一段时间,因为它每次都会重新下载Go包。
这是否意味着Docker更适合部署而不是开发?
答案 0 :(得分:0)
嗯,这取决于您使用Docker的问题。
Docker是一个很棒的工具,可以提供环境虚拟化和图像分发。这有助于部署和持续集成过程。
因此,如果您在团队中工作并且需要相同的环境来处理,那么它在开发中可能很有用。
答案 1 :(得分:0)
你的问题中存在一些误解,值得重新审视以充分利用Docker。
为了查看我的[开发]更改,我必须重建Docker镜像
一种流行的开发方法是使用一个特殊的启动shell脚本来执行docker run
(或docker-compose up
命令),该脚本创建映射到开发计算机磁盘的卷。这允许您在本地计算机上进行更改,它们将立即反映在正在运行的容器中。
这样,您就不必重建机器,甚至不必重新启动它。当然,当您转移到UAT或暂存时,您将不得不重建您的映像,并且它不会将这些卷映射到主机。
每次都重新下载Go包
这听起来好像你的Docker层缓存有问题。如果使用正确,您的Dockerfile
应该允许您从之前的版本中快速重建图像,除非:
Dockerfile
中的一行或前一行已更改这可能值得在一个单独的线程中解决。