У меня есть этот докер-контейнер для запуска terraform.
псевдоним terraform = 'docker run -i -t -v ~ / .aws: /root/.aws: ro -v $ (pwd): /app -w / app / rubendob / terraform: 0.11.8 '
- это просто копия официального изображения terraform.Ничего фантастического.
FROM golang:alpine
MAINTAINER "HashiCorp Terraform Team <terraform@hashicorp.com>"
ENV TERRAFORM_VERSION=0.11.8
RUN apk add --update git bash openssh
ENV TF_DEV=true
ENV TF_RELEASE=true
WORKDIR $GOPATH/src/github.com/hashicorp/terraform
RUN git clone https://github.com/hashicorp/terraform.git ./ && \
git checkout v${TERRAFORM_VERSION} && \
/bin/bash scripts/build.sh
RUN rm -rf /var/lib/apt/lists/*
WORKDIR $GOPATH
ENTRYPOINT ["terraform"]
Итак, я назвал это так:
alias terraform='docker run -i -t -v ~/.aws:/root/.aws:ro -v $(pwd):/app -w /app/ rubendob/terraform:0.11.8'
Тогда у меня есть следующая структура папок, и она работала нормально, так как ups, я решил запустить некоторые вещи terraform в папке dev.
ls -ls tf
total 0
0 drwxr-xr-x 3 ruben.ortiz staff 96 15 sep 23:43 dev
0 drwxr-xr-x 6 ruben.ortiz staff 192 11 sep 19:53 modules
0 drwxr-xr-x 4 ruben.ortiz staff 128 15 sep 12:39 prod
Я запустил контейнер как
terraform plan tf/prod/
и работал нормально, но контейнер создал затем папку .terraform с tfstate и другими вещами.
Так что еслиЯ хочу выполнить ту же команду, но dev среда просто не может, потому что она обнаруживает и предыдущую папку .terraform
ls -lisah tf/.terraform/
total 8
901814 0 drwxr-xr-x 5 ruben.ortiz staff 160B 15 sep 12:38 .
885805 0 drwxr-xr-x 6 ruben.ortiz staff 192B 15 sep 23:54 ..
901815 0 drwxr-xr-x 15 ruben.ortiz staff 480B 16 sep 00:05 modules
901821 0 drwxr-xr-x 3 ruben.ortiz staff 96B 10 sep 23:02 plugins
901819 8 -rw-r--r-- 1 ruben.ortiz staff 567B 16 sep 18:43 terraform.tfstate
И если я вхожу в папку dev, я просто устанавливаю том в текущий каталогон не может видеть папку общих модулей.
Как вы, ребята, можете обойти это?
Спасибо!