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

时间:2016-09-23 21:25:51

标签: r github docker jekyll

目前有一个管道用于在R中构建报告并在Jekyll中发布。我把我的文件保存在github的版本控制下,到目前为止一直很好用。

最近,我开始考虑如何使用RRubyJekyll并构建一个我的同事可以下载并运行同一报告而不需要全部在他们的计算机上设置的包和宝石。我查看了Docker Hub,发现git提交的自动构建是一个非常有趣的功能。

我想构建一个可用于运行此配置的映像,并将其保持在版本控制之下,并在Docker Hub中保持最新。这样的事情怎么样?

如果我保留了当前的设置,我可以在我的仓库中添加一个dockerfile,Docker Hub将为我构建我的图像,我认为在同一图像上运行我的工作会很有趣。

关于这样的管道如何运作的任何想法?

1 个答案:

答案 0 :(得分:1)

Docker Hub构建服务应该有效(https://docs.docker.com/docker-hub/builds/)。您还可以考虑使用gitlab-ci或travis ci(gitlab对privet项目有用,它还提供privet docker注册表)。

你应该有两个Dockerfiles,一个具有所有依赖关系,第二个非常简约的一个用于报告(构建将更快)。类似的东西:

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

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

在第二个存储库中,您可以使用所有工具和nginx或者用于提供静态文件的内容来创建基本映像。确保将nginx www-root设置为/ reports。如果您需要更新工具,只需在Dockerfile中更新base_mage标记以获取报告。