【问题标题】:Creating a Docker Image for a Github Project为 Github 项目创建 Docker 镜像
【发布时间】:2015-08-24 19:08:08
【问题描述】:

我有一个名为 OpenRefine 的 GitHub project(我正在使用它(我没有创建它)),我想将它封装在 Docker 映像中,这样其他然后,人们可以从“Docker Hub”中提取该 Docker 映像,并将 OpenRefine 安装在他们的基本交互式 Docker 实体上,即。图片。

然后我想将它上传到我可以与其他人共享的存储库。

如果它有一个名字而不是一个疯狂的哈希值会很好。


是不是我只是用git clone 命令创建了一个“docker 文件”和一个文本文件?

但是如何将其上传到诸如 docker hub 之类的存储库中呢?我只是把那个文本文件放在那里?

有点像

来自 ubuntu

维护者:/ WTF?!

运行 git clone 等等

CMD 这里是什么?


这似乎是一个非常基本的问题,但在 Docker provided tutorials 中不容易获得信息,在 Stackoverflow 上也没有明确的答案,但对于制作终端输出的非常复杂的方法来说,这些无疑是极好的资源“你好世界”。

【问题讨论】:

  • 您是要发布一个包含来自 master 分支的最新代码的映像,还是只想为您的版本发布一个映像?
  • 它不必有最新的代码

标签: docker dockerhub


【解决方案1】:

虽然 Sergius 的回答没有错,但其他方法可以通过 Dockerfile https://docs.docker.com/reference/builder/。这样,您可以在您的 github 项目中包含一个 Dockerfile,然后构建该映像以放在 docker hub 上。或者您可以创建一个 dockerfile,从 github 拉取您的项目,运行任何必要的构建步骤,然后将其推送到 docker hub。

无论哪种方式,您都需要从 dockerfile 构建映像

docker build -t <name of image> <OPTIONS> <build context>

然后您将使用docker push 推送图像。

对于项目之外的 Dockerfile:

FROM ubuntu:14.04
RUN apt-get install git && \
git clone <your git repo> && \
<additional bash commands for building your project>
CMD <command to run your project> # Can also use ENTRYPOINT in certain cases

【讨论】:

  • 是否有一个标准的镜像,只是一个 ubuntu 镜像和一个使用 gitclone 的 github 项目?
  • 如果您在 Docker hub 上创建一个存储库并将其链接到您的 github 存储库,只需单击一下即可构建和发布您的图像
  • 在这种情况下,你需要在你的 github 项目中包含一个 dockerfile,Thomasleveil
  • 我会为你想要的添加一个示例 dockerfile
  • 就像我说的,docker build 将构建它。您使用 -t 为图像添加名称,因此 docker build -t &lt;your username&gt;/&lt;project&gt; &lt;directory with Dockerfile 将构建它。然后docker push &lt;name you just tagged&gt;
【解决方案2】:

我不确定,但您可以尝试获取一些适合运行您的应用程序的基本 docker 映像。在那里构建您的应用程序并使用“docker commit”获取新图像,该图像将包含您的应用程序的基本图像。

【讨论】:

    【解决方案3】:

    Docker Hub 上已经有 plenty 个用于 OpenRefine 的 Docker 镜像。

    你为什么不在他们的 Dockerfile 中举个例子呢? This one 似乎是最受欢迎的。

    【讨论】:

    • 这确实是一个很好的选择,但我也只是对如何做到这一点感兴趣。但是或者确定这很有用,谢谢。我赞成这个答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 2016-05-28
    • 2019-08-03
    • 2022-08-18
    • 2018-08-13
    相关资源
    最近更新 更多