在受版本控制的 Docker 图像中开发
Developing in a Docker image that's under version control
目前有一个管道,我用它在 R
中构建报告并在 Jekyll
中发布。我在 github 中将我的文件置于版本控制之下,到目前为止效果很好。
最近我开始考虑如何使用 R
、Ruby
和 Jekyll
构建一个 docker 图像,我的任何同事都可以下载并且 运行 相同的报告,但没有在他们的计算机上设置所有的包和 gem。我查看了 Docker Hub,发现 git 提交的自动构建是一个非常有趣的功能。
我想构建一个可用于 运行 此配置的映像,并将其置于版本控制之下,并在 Docker Hub 中保持最新。这样的事情是如何工作的?
如果我只保留当前设置,我可以将 docker 文件添加到我的存储库中,Docker Hub 会为我构建图像,我只是认为 运行 我在同一张图片上的作品。
对这样的管道如何工作有什么想法吗?
Docker 集线器构建服务应该可以工作 (https://docs.docker.com/docker-hub/builds/)。也可以考虑使用gitlab-ci或者travisci(gitlab对privet项目会有用,它也提供了privetdocker注册)。
您应该有两个 Docker 文件,一个包含所有依赖项 ci ,第二个非常简约的文件用于报告(构建速度会快得多)。类似于:
FROM base_image:0.1
COPY . /reports
WORKDIR /reports
RUN replace-with-requiered-jekyll-magic
Docker上面的文件应该在您的报告存储库中。
在第二个存储库中,您可以使用所有工具和 nginx 或用于提供静态文件的东西创建基本映像。确保 nginx www-root 设置为 /reports。如果您需要更新工具,只需更新 Docker 报告文件中的 base_mage 标记。
目前有一个管道,我用它在 R
中构建报告并在 Jekyll
中发布。我在 github 中将我的文件置于版本控制之下,到目前为止效果很好。
最近我开始考虑如何使用 R
、Ruby
和 Jekyll
构建一个 docker 图像,我的任何同事都可以下载并且 运行 相同的报告,但没有在他们的计算机上设置所有的包和 gem。我查看了 Docker Hub,发现 git 提交的自动构建是一个非常有趣的功能。
我想构建一个可用于 运行 此配置的映像,并将其置于版本控制之下,并在 Docker Hub 中保持最新。这样的事情是如何工作的?
如果我只保留当前设置,我可以将 docker 文件添加到我的存储库中,Docker Hub 会为我构建图像,我只是认为 运行 我在同一张图片上的作品。
对这样的管道如何工作有什么想法吗?
Docker 集线器构建服务应该可以工作 (https://docs.docker.com/docker-hub/builds/)。也可以考虑使用gitlab-ci或者travisci(gitlab对privet项目会有用,它也提供了privetdocker注册)。
您应该有两个 Docker 文件,一个包含所有依赖项 ci ,第二个非常简约的文件用于报告(构建速度会快得多)。类似于:
FROM base_image:0.1
COPY . /reports
WORKDIR /reports
RUN replace-with-requiered-jekyll-magic
Docker上面的文件应该在您的报告存储库中。
在第二个存储库中,您可以使用所有工具和 nginx 或用于提供静态文件的东西创建基本映像。确保 nginx www-root 设置为 /reports。如果您需要更新工具,只需更新 Docker 报告文件中的 base_mage 标记。