#docker #.net-core #google-cloud-platform #docker-compose
#docker #.net-core #google-облачная платформа #docker-compose
Вопрос:
Я новичок в docker. Я разрабатываю .Net Core Api, который должен использовать хранилище GCP для хранения файлов. Я использовал этот учебник для настройки https://medium.com/net-core/using-google-cloud-storage-in-asp-net-core-74f9c5ee55f5 но у меня возникает проблема, когда мне нужно передать путь credential .json. Как я могу добавить credentials.json в контейнер docker при создании docker? И какой путь будет иметь этот файл в контейнере
Комментарии:
1. Можете ли вы добавить их в переменную среды, как сделано cloud.google.com/docs/authentication/getting-started
Ответ №1:
Примечание: Поскольку вы не указали облачную службу Google, которую используете, в этом ответе предполагается, что Google Compute Engine объединен с Docker.
Если вы храните свою учетную запись службы в файле JSON на хосте контейнера, используйте функцию Docker bind mount
. В этом примере каталог хоста будет сопоставлен /secrets
каталогу контейнера /config
. Затем вы получите доступ к учетной записи службы, используя полный путь, начинающийся с /config/
-v /secrets:/config
Однако в соответствии с дизайном облачных вычислительных служб Google рекомендуется назначить экземпляру виртуальной машины учетную запись службы, а затем получить доступ к учетным данным из метаданных. Клиент Google SDK использует ADC для поиска учетных данных и проверяет метаданные на наличие токена доступа OAuth, если учетная запись службы не указана. Сюда входит клиент Google для .NET.
Конечная точка метаданных для извлечения и токен доступа OAuth:
http://metadata.google.internal/computeMetadata/v1instance/service-accounts/default/token
Другим вариантом является кодирование base64 содержимого файла JSON учетной записи службы и передача в контейнер в качестве переменной среды, которую затем вы сохраняете в файле внутри контейнера (в вашем коде, сценарии оболочки и т. Д.).
Комментарии:
1. Примечание: никогда не храните свои учетные данные в контейнере! Используйте volume mount для загрузки, как описал Джон. Вы также можете черпать вдохновение оттуда