Estou fornecendo autenticação de poesia usando segredos de compilação, mas ela não está sendo montada no ambiente. Copiei e modifiquei o exemplo da documentação do docker .
export DOCKER_BUILDKIT=1
docker build \
--secret id=poetry_johndoe_auth_username,env=POETRY_HTTP_BASIC_JOHNDOE_GITLAB_USERNAME \
--secret id=poetry_johndoe_auth_password,env=POETRY_HTTP_BASIC_JOHNDOE_GITLAB_PASSWORD \
-t example:latest .
No dockerfile estou montando no ambiente
RUN --mount=type=secret,id=poetry_johndoe_auth_username,env=POETRY_HTTP_BASIC_JOHNDOE_GITLAB_USERNAME \
--mount=type=secret,id=poetry_johndoe_auth_password,env=POETRY_HTTP_BASIC_JOHNDOE_GITLAB_PASSWORD \
pip install -r /tmp/requirements.txt
O CI está retornando após o erro
Dockerfile:17
--------------------
16 |
17 | >>> RUN --mount=type=secret,id=poetry_johndoe_auth_username,env=POETRY_HTTP_BASIC_JOHNDOE_GITLAB_USERNAME \
18 | >>> --mount=type=secret,id=poetry_johndoe_auth_password,env=POETRY_HTTP_BASIC_JOHNDOE_GITLAB_PASSWORD \
19 | >>> pip install -r /tmp/requirements.txt
20 |
--------------------
ERROR: failed to solve: unexpected key 'env' in 'env=POETRY_HTTP_BASIC_JOHNDOE_GITLAB_USERNAME'
O Dockerfile
RUN --mount=type=secret
não oferece suporte à opção env no Dockerfiles.Você deve ler os segredos do seu comando run e atribuí-los aos ENVs do docker via
export
.Seu
DOCKER RUN
comando deve ser parecido com:Se você precisar que eles estejam em
.bashrc
, você pode:Como todos os segredos são armazenados como arquivos, apenas lê-los e exportá-los deve resolver o problema. Algo como