Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用私有git存储库中的应用程序代码构建docker映像?_Git_Docker_Security - Fatal编程技术网

如何使用私有git存储库中的应用程序代码构建docker映像?

如何使用私有git存储库中的应用程序代码构建docker映像?,git,docker,security,Git,Docker,Security,我想构建运行PHP应用程序的Docker映像。源代码存储在私有GitHub存储库中 我应该: 在容器(Dockerfile中)内复制一些SSH密钥(我自己的或专用的或我的CI/CD工具),然后将其删除以授权并从GitHub克隆存储库,如下所示: 或 使用我自己的(或我的CI/CD工具)环境将存储库克隆到/app目录,并且仅在Dockerfile中复制它 如果这改变了什么,我的所有GitHub存储库都是私有的,我将我的图像存储在私有Docker Hub存储库中。将SSH密钥加载到Docker并从g

我想构建运行PHP应用程序的Docker映像。源代码存储在私有GitHub存储库中

我应该:

  • 在容器(Dockerfile中)内复制一些SSH密钥(我自己的或专用的或我的CI/CD工具),然后将其删除以授权并从GitHub克隆存储库,如下所示:
  • 使用我自己的(或我的CI/CD工具)环境将存储库克隆到
    /app
    目录,并且仅在Dockerfile中复制它

  • 如果这改变了什么,我的所有GitHub存储库都是私有的,我将我的图像存储在私有Docker Hub存储库中。

    将SSH密钥加载到Docker并从git中提取源代码通常不是一个好主意。您应该使用选项2。使用CI/CD管道从repo中提取源代码,然后将其复制到docker映像中


    我们对所有的生产管道都这样做。我们在github上创建部署键,然后使用Circle CI提取源代码并构建docker映像。

    谢谢。这是否意味着作为一名开发人员,我需要在我的机器上本地使用工具(composer、npm、gulp等),以便能够克隆、构建、测试我稍后放入映像中运行的代码?如果不同的项目使用不同的gulp版本、不同的composer、npm等版本会怎么样?我只是不喜欢在我的机器上本地安装这些工具。你可以把它们都放到docker中进行开发,但要明确的是,这将是你的开发docker。对于生产,您将有一个单独的管道来创建生产docker实例。