Estou tentando aproveitar a secrets
funcionalidade de passagem em um processo docker build-push usando o action correspondente .
Aqui está como estou invocando a ação
- name: build and push base runtime image
uses: docker/build-push-action@v5
with:
file: path/to/Dockerfile
build-args: |
USERNAME=${{ inputs.username }}
secrets: |
${{ secrets.MY_PASSWORD }}
ODockerfile
FROM ubuntu:latest
ARG USERNAME
COPY ./test-script.sh .
RUN --mount=type=secret,id=MY_PASSWORD \
cat /run/secrets/MY_PASSWORD
RUN ./test-script.sh ${USERNAME} $(cat /run/secrets/MY_PASSWORD)
O processo de compilação falha com:
cat: /run/secrets/MY_PASSWORD: No such file or directory
Por que é que?
Existem dois problemas com seu código:
você não passa o segredo corretamente para a ação - você terá que usar
"MY_PASSWORD=${{ secrets.MY_PASSWORD }}"
Você precisa montar o segredo em cada
RUN
instrução que tentará usá-lo.Aqui estão seus arquivos corrigidos:
o trecho do pipeline
e o Dockerfile