重新构build在Docker容器中运行的Go(App Engine)应用程序?

通常,当您使用Go- goapp servegoapp serve命令运行Go应用程序时,会检测到文件更改并启动重新构build。

 INFO 2015-01-11 ... Detected file changes: ... 

我目前正在Docker容器中运行Go-Appengine ,当服务器正常启动时,文件更改不会启动重新构build。 我如何做到这一点?

从我个人的经验来看,在Docker容器内部和外部运行的Django项目在检测到文件更改时的行为方式相同。

我认为这里的问题是,docker-container中的文件不会改变,只能在host-filesystem中改变。 你的source-directory被添加到Dockerfile中(当container-image被构build时)。 如果稍后更改文件,容器不会自动重build。

为了解决这个问题(为了开发的目的),你可以将你的主机系统的源目录挂载到docker-container中。 使用这个技巧,源代码更改会自动添加到容器中。

为此,添加

 volumes: - .:/go/src