我有一个可重复使用的工作流程,用于构建和将docker镜像推送至ECR。
工作流程中的其中一个输入是用于指定docker build命令参数的。以下是可重复使用工作流程中的命令:
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG ${{ inputs.DOCKER_BUILD_ARGS }} .
在某些情况下,我需要将 DOCKER_BUILD_ARGS 中包含机密信息,例如:
secrets:
AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
uses: XXXXX/.github/workflows/DockerBuildPushECR.yml@main
with:
ECR_REGISTRY: XXXXXX
ECR_REPOSITORY: XXXXX
DOCKER_BUILD_ARGS: "--build-arg PASSWORD=${{ secrets.PASSWORD }}"
GitHub提示工作流无效:"未识别的命名值:'secrets'",因为它只在secrets部分中期待secrets。
我不能将其传递为secret,因为可复用工作流并不期待这个secret,我只想让它成为字符串的一部分...
不能使用env,因为它不能与可复用工作流一起使用。
我该如何使这种情况有效?
env
,但必须在可重用的工作流内设置值。 在您的情况下,我相信设置env:PASSWORD:${{secrets.PASSWORD}}
,然后使用with:DOCKER_BUILD_ARGS:"--build-arg PASSWORD = ${{env.PASSWORD}}"
应该会起作用。 让我知道 :) - GuiFalourd