在受版本控制的Docker镜像中开发

目前有一个pipe道,我用它来build立报告在R和发布在Jekyll 。 我把我的文件保存在github的版本控制下,到目前为止工作得很好。

最近我开始考虑如何让RRubyJekyllbuild立一个docker的形象,让我的同事可以下载并运行相同的报告,而不必在电脑上安装所有的软件包和gems。 我看着Docker Hub,发现git提交的自动构build是一个非常有趣的function。

我想要构build一个可用于运行此configuration的映像,并将其保留在版本控制之下,并在Docker Hub中保持最新。 这样的工作怎么样?

如果我只保留了当前的设置,我可以添加一个dockerfile到我的repo中,Docker Hub将为我构build我的映像,我只是觉得在相同的映像上运行我的工作会很有趣。

任何想法如何这样的pipe道可能工作?

Docker Hub构build服务应该可以工作( https://docs.docker.com/docker-hub/builds/ )。 你也可以考虑使用gitlab-ci或者travis ci(gitlab将会对privet项目有用,它还提供了privet docker registry)。

你应该有两个Dockerfiles,一个是所有的依赖关系,另一个是非常简约的报告(构build会更快)。 就像是:

 FROM base_image:0.1 COPY . /reports WORKDIR /reports RUN replace-with-requiered-jekyll-magic 

上面的Dockerfile应该在你的报告库中。

在第二个版本库中,您可以使用所有的工具和nginx或者其他的东西来为基本映像创build静态文件。 确保将nginx www-root设置为/ reports。 如果您需要更新工具,只需更新Dockerfile中的base_mage标签以获取报告。