繁体   English   中英

拉取 Terraform docker 容器内的私有模块

[英]Pull private module within Terraform docker container

要运行我的 Terraform,我有一个 docker-compose 设置,它可以提取hashcorp/terraform:light图像,然后构建我的基础架构。

我最近介绍了一个私有模块,它位于我的私有 Github 存储库中。 当我在我的机器上运行terraform get时它工作正常,但在 Docker 组合设置中我收到以下错误:

Could not download module "privateModule" (privateModule.tf:1) source code from
"git@github.com:sum/private.go.deploy.git": error downloading
'ssh://git@github.com/sum/private.go.deploy.git': /usr/bin/git exited with
128: Cloning into '.terraform/modules/privateModule'...
Warning: Permanently added 'github.com,140.82.121.3' (RSA) to the list of
known hosts.
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我正在尝试将我的 SSH 密钥传递给容器,以便它可以拉动私有 Github 存储库,但它似乎没有做任何事情。

version: '3.4'

services:
  terraform:
    image: hashicorp/terraform:light
    volumes:
      - .:/terraform
      - ~/.ssh:/.ssh
    working_dir: /terraform
    environment:
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}

我的 Makefile 中的命令是:

tf-init:
    docker-compose run --rm terraform init

有没有办法让我的容器从 Git 中提取私有依赖项以与 Terraform 一起使用?

ssh 文件夹未安装到正确的位置。

通过将其安装到root/.ssh它解决了我的问题,我可以成功下载私有 Terraform 模块!

version: '3.4'

services:
  terraform:
    image: hashicorp/terraform:light
    volumes:
      - .:/terraform
      - ~/.ssh:/root/.ssh
    working_dir: /terraform
    environment:
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM