Обход предупреждения --password-stdin (докер)

Еще один день, еще одна проблема с докером. У меня Windows server 2019, версия докера 18.09.03, и я хочу получить свои изображения в ECR.

По определенным причинам у меня не может быть докера предупреждения: ПРЕДУПРЕЖДЕНИЕ! Ваш пароль будет храниться в незашифрованном виде. Мой инструмент развертывания считает его ошибкой и, следовательно, не развертывает. Поэтому я искал, как использовать --password-stdin "правильным" образом. Что не очень хорошо.

Вот сценарий Powershell, который я сейчас использую.

#First step to create the file
aws ecr get-login --no-include-email | Out-File -FilePath FILEPATH 
#Second step to filter the file and just get the password.
-split @(Get-Content -Path FILEPATH) |Select-Object -Index 5 | Out-File -FilePath FILEPATH

#Get authorized but stdin warning?? 
cat FILEPATH | docker login -u AWS --password-stdin https://NUMBER.dkr.ecr.eu-west-1.amazonaws.com

Я передаю пароль в файл, затем стандартный ввод из него, он работает, но возвращает предупреждение.

Я тоже попробовал этот комментарий ( https://github.com/aws/aws-cli/issues/2875), но он не принимает флаги. я делаю

aws ecr get-login --no-include-email --region eu-west-1 --password-stdin and Unknown options: --password-stdin
aws ecr get-login --region us-east-1 --print-password-only
--print-password-only is unknows as well)

Я ПОЛНОСТЬЮ начинаю раздражаться и расстраиваться. Любая помощь будет оценена, спасибо!

3 ответа

Используйте --password-stdin, указав пароль через стандартный ввод следующим образом:

      echo <my_password> | docker login -u <username> --password-stdin

Или, если вы извлекаете пароль из файла, например:

      cat <my_file> | docker login -u <username> --password-stdin

Чтобы войти в систему без предупреждения, можно попробовать --password-stdin, но важно помнить, что в этом случае пароль должен быть предоставлен стандартным вводом. Так--password-stdin <my-pwd>не сработает. Можно было попробовать

echo <my-pwd> | docker login <registry-name> -u <username> -p <password>

или можно сделать следующее

cat ~/my-pwd.txt | docker login <registry-name> -u <username> -p <password>

Если для получения дополнительной информации обратитесь к вопросу: Docker: использование --password через CLI небезопасно. Используйте --password-stdin

Можно просто перенаправить stderr, специальный бонус, используя токен авторизации gcloud.

docker login https://us.grc.io -u oauth2accesstoken --password-stdin <<< $(gcloud auth print-access-token --quiet) 2>/dev/null

Войти успешно

Другие вопросы по тегам