首页 > 解决方案 > 如何将标志传递到 Azure Pipelines 中的 docker run 命令?

问题描述

我正在尝试让tfsec在我的 Azure Pipeline 中运行。我已经能够使用以下命令运行它,而无需任何额外的标志:


    stages:

    - stage: QualityCheckStage
      displayName: Quality Check Stage
      jobs:
        - job: QualityTestJob
          pool: 
            vmImage: ubuntu-latest
          displayName: Run TFSec
          steps:
            - bash: |
                mkdir TFSecReport
                docker pull tfsec/tfsec:latest
                docker run --rm -v $(System.DefaultWorkingDirectory):/src tfsec/tfsec ./src --format JUnit > $(System.DefaultWorkingDirectory)/TFSecReport/junit.xml
              displayName: TFSec Static Code Analysis
       
        - task: PublishTestResults@2
          displayName: Publish TFSecReport Test Results
          condition: succeededOrFailed()
          inputs:
            testResultsFormat: 'JUnit'
            testResultsFiles: '**/junit.xml'
            searchFolder: '$(System.DefaultWorkingDirectory)/TFSecReport'
            mergeTestResults: false
            failTaskOnFailedTests: false
            publishRunAttachments: true

这按我的预期运行并成功完成了工作,检查了我的 terraform 代码并在管道运行期间显示了结果。

我想添加额外的 tfsec 标志,例如--include-passed, --verbose, 或--config-file使管道更健壮。我正在努力寻找一种将这些 tfsec 标志中的任何一个传递到 docker run 命令的方法。我尝试将标志添加到命令的每个部分,Azure 吐出以下错误##[error]Bash exited with code '1'.

如何通过 docker run 命令将标志传递到 tfsec 映像中?

标签: azuredockerterraform

解决方案


推荐阅读