Проблема связана с вашим первым и вторым синтаксисом команды.
docker create zricethezav/gitleaks --name=gitleaks
--name
должно быть перед именем изображения , иначе docker create
будет интерпретировать его как КОМАНДА аргумент вместо OPTIONS flag .
docker start gitleaks --ssh-key='bucket' --repo "$line"
Я понимаю, что вы хотите запустить образ с параметрами --ssh-key и --repo, однако это невозможно с помощью команды docker start
.Если вы хотите, чтобы эти параметры были переданы процессу, выполняемому образом, вы должны вставить эти параметры в команду docker create
или docker run
после имени образа.
Поэтому вы должны сделать:
# Mind the --name before the image name
docker create --name=gitleaks zricethezav/gitleaks --ssh-key='bucket' --repo "$line"
docker cp /keys/ssh/values gitleaks:/root/.ssh
docker start gitleaks
Пояснения для создания докера:
docker create
использование :
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
Где OPTIONS
флаги должны бытьуказано до IMAGE
, и все после IMAGE
будет интерпретироваться как COMMAND
и ARG...
.
Когда вы работаете
docker create zricethezav/gitleaks --name=gitleaks
Вы фактически передаете --name=gitleaks
as COMMAND
, которая будет переопределять команду изображения по умолчанию (ту, которая обычно предоставляется CMD
в Dockerfile), где вы, вероятно, хотите передать ее как OPTIONS
.Например, если вы запустите:
docker create alpine --name=foobar
docker create --name=foobar alpine
docker ps -a
вывод будет выглядеть так:
IMAGE COMMAND NAMES
alpine "/bin/sh" foobar
alpine "--name=foobar" quirky_varahamihira
Если вы хотите передать оба значения OPTIONS
и COMMAND
, вы должны указатьOPTIONS
перед именем изображения и COMMAND
после имени изображения.