如何 运行 TFLint Docker - 传递多个参数
How to run TFLint Docker - Passing multiple Args
运行 TFLint 通过他们的 Docker 图像 Here - 我必须一个接一个地传递 tflint 多个命令来初始化和 运行 我所在的工具我 运行 遇到问题
我在本地 运行 它使用以下命令,returns 我想要什么:
tflint --init --config 'path/to/config/'
tflint --config 'path/to/config/config.tflint.hcl' 'path/to/terraform/code'
# AND
tflint --init --config 'path/to/config/config.tflint.hcl' && tflint --config 'path/to/config/' 'path/to/terraform/code'
这是我用来 运行 docker 图片的命令:
docker run -it -v "$(pwd):/tflint" ghcr.io/terraform-linters/tflint --init --config '/tflint/path/to/config/config.tflint.hcl'
docker run -it -v "$(pwd):/tflint" ghcr.io/terraform-linters/tflint --config '/tflint/path/to/config/config.tflint.hcl' '/tflint/path/to/terraform/code'
输出:
Installing `azurerm` plugin...
Installed `azurerm` (source: github.com/terraform-linters/tflint-ruleset-azurerm, version: 0.15.0)
Failed to initialize plugins; Plugin `azurerm` not found. Did you run `tflint --init`?
我知道这是在每个 运行 上创建一个新容器,这就是为什么它没有检测到它已经被初始化的原因 - 我的问题是我如何重用这个容器来传递它在初始化后需要的额外参数?或者有更好的方法吗?任何 input/feedback 将不胜感激 :) 谢谢!
注意:这是 DockerTFLint 使用的文件
FROM golang:1.18.1-alpine3.15 as builder
RUN apk add --no-cache make
WORKDIR /tflint
COPY . /tflint
RUN make build
FROM alpine:3.15.4 as prod
LABEL maintainer=terraform-linters
RUN apk add --no-cache ca-certificates
COPY --from=builder /tflint/dist/tflint /usr/local/bin
ENTRYPOINT ["tflint"]
WORKDIR /data
您可以创建使用 tflint 基础映像的专用 Dockerfile ghcr.io/terraform-linters/tflint
并复制您的文件。
类似于:
FROM ghcr.io/terraform-linters/tflint
COPY <my files>
RUN tflint --init .......
举个例子,给大家一个思路。然后在本地构建它:
docker build -t mytflint .
并使用您构建的映像:
docker run mytflint ......
您可以将入口点更改为 sh
并传递多个命令
docker run -it -v "$(pwd):/tflint" --entrypoint=/bin/sh ghcr.io/terraform-linters/tflint -c "tflint --init --config '/tflint/path/to/config/config.tflint.hcl'; tflint --config '/tflint/path/to/config/config.tflint.hcl' '/tflint/path/to/terraform/code'"
运行 TFLint 通过他们的 Docker 图像 Here - 我必须一个接一个地传递 tflint 多个命令来初始化和 运行 我所在的工具我 运行 遇到问题
我在本地 运行 它使用以下命令,returns 我想要什么:
tflint --init --config 'path/to/config/'
tflint --config 'path/to/config/config.tflint.hcl' 'path/to/terraform/code'
# AND
tflint --init --config 'path/to/config/config.tflint.hcl' && tflint --config 'path/to/config/' 'path/to/terraform/code'
这是我用来 运行 docker 图片的命令:
docker run -it -v "$(pwd):/tflint" ghcr.io/terraform-linters/tflint --init --config '/tflint/path/to/config/config.tflint.hcl'
docker run -it -v "$(pwd):/tflint" ghcr.io/terraform-linters/tflint --config '/tflint/path/to/config/config.tflint.hcl' '/tflint/path/to/terraform/code'
输出:
Installing `azurerm` plugin...
Installed `azurerm` (source: github.com/terraform-linters/tflint-ruleset-azurerm, version: 0.15.0)
Failed to initialize plugins; Plugin `azurerm` not found. Did you run `tflint --init`?
我知道这是在每个 运行 上创建一个新容器,这就是为什么它没有检测到它已经被初始化的原因 - 我的问题是我如何重用这个容器来传递它在初始化后需要的额外参数?或者有更好的方法吗?任何 input/feedback 将不胜感激 :) 谢谢!
注意:这是 DockerTFLint 使用的文件
FROM golang:1.18.1-alpine3.15 as builder
RUN apk add --no-cache make
WORKDIR /tflint
COPY . /tflint
RUN make build
FROM alpine:3.15.4 as prod
LABEL maintainer=terraform-linters
RUN apk add --no-cache ca-certificates
COPY --from=builder /tflint/dist/tflint /usr/local/bin
ENTRYPOINT ["tflint"]
WORKDIR /data
您可以创建使用 tflint 基础映像的专用 Dockerfile ghcr.io/terraform-linters/tflint
并复制您的文件。
类似于:
FROM ghcr.io/terraform-linters/tflint
COPY <my files>
RUN tflint --init .......
举个例子,给大家一个思路。然后在本地构建它:
docker build -t mytflint .
并使用您构建的映像:
docker run mytflint ......
您可以将入口点更改为 sh
并传递多个命令
docker run -it -v "$(pwd):/tflint" --entrypoint=/bin/sh ghcr.io/terraform-linters/tflint -c "tflint --init --config '/tflint/path/to/config/config.tflint.hcl'; tflint --config '/tflint/path/to/config/config.tflint.hcl' '/tflint/path/to/terraform/code'"