为Github项目创建Docker镜像

时间:2015-08-24 19:08:09

标签: docker dockerhub

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

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

如果它有一个名字而不是一个疯狂的哈希值,那就太好了。

我只是使用git clone命令创建一个“docker file”文本文件吗?

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

这样的东西

来自ubuntu

MAINTAINER:/ WTF?!

运行git clone blah

CMD在这里做什么?

enter image description here

这似乎是一个非常基本的问题,但Docker provided tutorials中的信息不易获取,Stackoverflow也没有明确的答案,但这些资源无疑是一个非常复杂的资源。制作终端输出“ Hello World ”。

3 个答案:

答案 0 :(得分:10)

虽然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

答案 1 :(得分:2)

我不确定,但您可以尝试获取一些适合运行应用程序的基本docker镜像。在那里构建你的应用程序并使用&#34; docker commit&#34;获取新图像,其中包含应用程序的基本图像。

答案 2 :(得分:1)

Docker Hub上托管的OpenRefine已有plenty个Docker镜像。

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