gpt4 book ai didi

docker - 如何在构建时将代码放入 docker 镜像

转载 作者:行者123 更新时间:2023-12-02 18:52:55 29 4
gpt4 key购买 nike

我想在构建时将代码克隆到 docker 镜像

我正在考虑在 git clone 时传递 ssh key ,这不起作用。下面是我正在使用的命令,显示权限被拒绝

ssh-agent bash -c 'ssh-add /home/username/.ssh/id_rsa.pub my keys;  git clone ssh://git@location.git'

我无法使用 https 进行克隆

还说如果代码是在图像上克隆的,我们可以在容器上运行它时 GIT PULL

最佳答案

所以这里有两个真正的范式:

  • 我正在我的本地机器上工作。
    在这种情况下,您很可能已经将代码 checkout 到本地计算机上。在这里,只需使用 COPY 指令获取整个文件夹并将其放入容器中的某个位置。无需担心 git 或类似的东西。
  • 我有一个构建服务器执行构建
    在这种情况下,让构建服务器检查代码然后执行与上述相同的操作是有意义的。我们只是将 checkout 的代码复制到图像中

  • 最后,另一种适用于 PHP、JS 等动态语言的替代方法是不将代码放入镜像中,而是在运行时将代码安装到容器上。

    让我们以 PHP 为例。如果网络服务器正在/var/www/html 中查找代码,您可以像这样运行您的图像:
    docker run -d --name {containername} -p 80:80 -p 443:443 -v /my/dir/where/code/is:/var/www/html {your base image}

    以上将创建图像,但会将您的本地目录传递到/var/www/html 目录,这意味着您在本地进行的任何更改都会出现在容器的源代码中。在 Composer 稳定之前,这在 Vagrant 和 docker 的早期使用更为突出。

    关于docker - 如何在构建时将代码放入 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53078284/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com