gpt4 book ai didi

docker - 如何将目录从远程主机复制到docker镜像

转载 作者:行者123 更新时间:2023-12-02 18:03:23 25 4
gpt4 key购买 nike

我正在尝试构建一个 docker 镜像,我有包含所有必要命令的 dockerfile。但在我的构建步骤中,我需要将一个目录从远程主机复制到 docker 镜像。但是,如果我将 scp 命令放入 dockerfile,我还必须在 dockerfile 中提供密码,而我不必这样做。

任何人都有更好的解决方案来做到这一点。任何建议将不胜感激。

最佳答案

我想说至少有处理这个问题的选择:

选项 1:如果您可以在运行 docker build 之前执行 scp,这可能是最简单的选择:

  1. 运行 scp -r somewhere:remote_dir ./local_dir
  2. COPY ./local_dir some_path 添加到您的 Dockerfile
  3. 运行docker build

选项 2:如果您必须在构建期间执行 scp:

  1. 开始一些键值存储,例如 etcd构建前
  2. 在键值存储中临时放置一个正确的 SSH key (不能用密码保护)
  3. 在单个 RUN 命令中(避免在图像中留下 secret ):
    • 从键值存储中检索 SSH key ;
    • 将其放入~/.ssh/id_rsa或启动一个ssh-agent并添加;
    • 使用scp获取目录
    • 删除 SSH key
  4. 从键值存储中删除键

第二个选项有点复杂,因此可能值得创建一个包装器脚本来检索所需的 secret 、运行任何命令并删除 secret 。

关于docker - 如何将目录从远程主机复制到docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38230915/

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