Обход предупреждения --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
Войти успешно