我已经设置了一个包含3个分支(master,dev和docker)的github存储库。我已经成功设置并链接dockerhub上的自动构建。每次在Github上进行推送时,都会在Dockerhub上以不同标记(最新的主设备,开发者的Beta版和码头工的Alpha版)构建映像。这工作正常。现在的问题...在Github-Dockerhub上自动构建的Docker工作流程
在Dockerfile上,有一个git clone
命令来检索项目。问题是这总是指向主人。因此,如果我将某些东西推送到码头分支(例如使用alpha标签构建图像),那么该图像上的项目代码是主码而不是分支码头代码,这是此案例所需的分支码头代码。
如果我修改分支docker(它生成alpha标记的图像)的Dockerfile,我把git clone -b docker ...
构建好,但在所有测试后,当我想合并一个从docker分支到dev分支的pull请求时例如,dev上需要另一个更新,以便将Dockerfile内部的git clone
命令更改为指向正确的分支。同样的情况下,从dev到master的pull request对于这个项目来说更加困难,master分支是受保护的,我不能直接push到master ...所以在从dev到master的pull请求之后,我无法修复Dockerfile更改Dockerfile以将git clone
更改为再次指向主设备。
有没有办法在自动化建设中拥有不同标签的分支,而不需要在从一个分支到另一个分支的请求之后进行任何更改?谢谢。
它并没有奏效。我从Dockerfile中移除了'git clone'并尝试了'COPY。/some/existing/path/inside/the/container',并且在推后,自动构建在命令之后失败,因为文件不在那里。我的意思是,COPY命令不会将我的项目复制到容器中。我也尝试过'COPY ../ some/existing/path/inside/the/container',因为我的Dockerfile位于项目的/ docker目录中......但它也不起作用。任何其他想法? – OscarAkaElvis
我的项目在/ docker目录中有dockerfile文件......并使用COPY。/some/existing/path/inside/the/container'仅拷贝仅具有Dockerfile和README.md的/ docker文件夹的内容。我需要复制父目录及其所有目录(不关心/ docker是否被复制)。如何实现这一目标?正如我在其他评论中所说的。使用'COPY ../ some/existing/path/inside/the/container'生成这个错误'Build failed:构建上下文之外的禁止路径:..()' – OscarAkaElvis
@OscarAkaElvis我添加了一些额外的信息和屏幕截图 – thaJeztah