У меня есть изображение с ключами SSH:
WORKDIR /keys
COPY ssh ssh
тогда я запускаю это изображение как контейнер:
docker run -ti \
--rm -v '/var/run/docker.sock:/var/run/docker.sock' --name test gitleaks-test
и в точке входа я запускаю другой контейнер:
ls -a /keys/ssh/values
docker run --rm --name=gitleaks \
-v "/keys/ssh/values:/root/.ssh" \
zricethezav/gitleaks \
--ssh-key='/keys/ssh/values/bucket' \
--repo "$line"
команда ls -a
регистрирует это:
. .. bucket bucket.pub
так что ключи находятся в работающем контейнере, но я не думаю, что команда --volume делает то, что я думаю:
-v "/keys/ssh/values:/root/.ssh"
Я предполагаю, что поскольку эти контейнеры выполняются как братья и сестры, команда -v идет от хоста к внутреннему контейнеру, а не от внешнего контейнера к внутреннему контейнеру, верно?
Обратите внимание, что если я переопределю точку входа, используя:
docker run --rm --name = gitleaks \
-v "/keys/ssh/values:/root/.ssh" \
--entrypoint ls \
zricethezav / gitleaks -a /root/.ssh
затем ls -a
журналы:
. ..