Как получить доступ к GCP API auth JSON в образе Docker - PullRequest
0 голосов
/ 18 июня 2019

У меня есть экземпляр движка приложений, работающий на GCP, и пример приложения, которое я могу запустить непосредственно из Visual studio (Windows) и могу обновить базу данных cloudtore. Я также могу развернуть приложение в GCP.

Мне нужен ключ аутентификации для доступа к служебной учетной записи в GCP из docker, поэтому я добавил его в проект в SweepstakesLinux / Keys, чтобы он был скопирован в docker файлом dockerfile.

Однако, когда я пытаюсь запустить его в Docker, я получаю эту ошибку

Error reading credential file from location /app/SweepstakesLinux/Keys/KEY_NAME.json: Could not find file '/app/SweepstakesLinux/Keys/KEY_NAME.json'.

Мой Dockerfile выглядит так

FROM gcr.io/google-appengine/aspnetcore:2.1
COPY . /app
WORKDIR /app

# Environment Variables
ENV GOOGLE_APPLICATION_CREDENTIALS /app/SweepstakesLinux/Keys/KEY_NAME.json


ENTRYPOINT ["dotnet", "SweepstakesLinux.dll"]

Я могу подключиться к образу докера, используя

docker run -it --entrypoint sh sweepstakeslinux:dev

и я вижу, что файл существует в каталоге.

IMG

Если я запускаю $ GOOGLE_APPLICATION_CREDENTIALS из контейнера Docker, он, похоже, находит файл, но не поля в нем

IMG

и если я запускаю grep vi $ GOOGLE_APPLICATION_CREDENTIALS, он может открыть файл, но некоторые пары ключей и значений, по-видимому, отсутствуют: IMG

Я также попытался смонтировать локальную папку с моего компьютера, чтобы получить доступ и скопировать ключ оттуда, запустив

docker run -v C:\Users\Phil\Keys:/keys --entrypoint sh sweepstakeslinux:dev

но это просто приводит к этой ошибке:

No executable found matching command "dotnet-SweepstakesLinux.dll"

Есть идеи?


Изменил мой докер-файл на

FROM gcr.io/google-appengine/aspnetcore:2.1
COPY . /app
WORKDIR /app
RUN mkdir /tmp/keys

RUN cp /app/SweepstakesLinux/Keys/dbAccessKey.json /tmp/keys/dbAccessKey.json

ENV GOOGLE_APPLICATION_CREDENTIALS  /tmp/keys/dbAccessKey.json


ENTRYPOINT ["dotnet", "SweepstakesLinux.dll"]

и это работает. Я все еще не уверен в правильном подходе

...