Masked variables not present in service containers
Summary
For my setup I have to use a container as a job service for which I need to override the command to export the DOCKER_AUTH_CONFIG
variable. In it I use the CI_REGISTRY_*
variables but the masked variable CI_REGISTRY_PASSWORD
seems to be absent from the service container entirely.
Steps to reproduce
I asked a question on SO and Pierre B. was so kind to reproduce the issue.
.gitlab-ci.yml
image: gitlab.registry.example:5005/my-custom-maven-image
variables:
MAVEN_CLI_OPTS: "--batch-mode -s $CI_PROJECT_DIR/.m2/settings.xml"
stages:
- test
test:
stage: test
script:
- mvn $MAVEN_CLI_OPTS clean test
services:
- name: docker:dind
alias: docker
command:
- /bin/sh
- -c
- "DOCKER_AUTH_CONFIG=`echo \"{\\\"auths\\\":{\\\"$CI_REGISTRY\\\":{\\\"username\\\":\\\"$CI_REGISTRY_USER\\\",\\\"password\\\":\\\"$CI_REGISTRY_PASSWORD\\\"}}}\"` && mkdir -p \"/root/.docker\" && echo \"${DOCKER_AUTH_CONFIG}\" > \"/root/.docker/config.json\" && cat /root/.docker/config.json && update-ca-certificates && dockerd-entrypoint.sh || exit"
Actual behavior
CI_REGISTRY_PASSWORD
doesn't exist in the service container.
Expected behavior
CI_REGISTRY_PASSWORD
is present in the service container and can be used to authenticate against the registry.
Relevant logs and/or screenshots
job log
{"auths":{"gitlab.registry.example:5005":{"username":"gitlab-ci-token","password":""}}}
Used GitLab Runner version
13.2.1