Образ Cloud Build docker не может записывать файлы локально - не удается открыть файл ... отказано в разрешении - PullRequest
0 голосов
/ 13 июля 2020

Используя учетные данные учетной записи службы, я успешно запустил Cloud Build, чтобы запустить gsutil, переместить файлы из gs в экземпляр, а затем скопировать их обратно. Все в порядке.

Один из шагов Cloud Build успешно загружает изображение docker из внешнего источника, оно загружается нормально и успешно сообщает свою справочную информацию. Но при запуске происходит сбой с сообщением об ошибке: «Не удалось открыть файл» ..intermediary_work_product_file. В разрешении отказано.

Для приложения, которое я запускаю на этом этапе, эта ошибка обычно возникает, когда файл не может быть записан в его расположение по умолчанию. Я установил dir = "/ workspace", чтобы подтвердить значение по умолчанию.

Итак, как мне предоставить разрешения на чтение / запись приложению, работающему на этапе сборки Cloud, чтобы записать его собственный промежуточный рабочий продукт в локальные папки? Сама облачная сборка работает нормально с использованием учетных данных служебного аккаунта. Пытались добавить дополнительные разрешения, в том числе с ролями администратора Storage, Cloud Run, Compute Engine, App Engine. Но та же ошибка.

Я предполагаю, что учетные данные, использованные для создания экземпляра, передаются во время выполнения. Мы углубились в документацию и примеры GCP CloudBuild, но не нашли ответов.

Должно быть что-то фундаментальное, что я упускаю .

1 Ответ

1 голос
/ 14 июля 2020

Эта проблема была решена путем изменения ПОЛЬЗОВАТЕЛЯ Dockerfile, как это было предложено @ PRAJINPRAKA SH в этом полезном ответе { ссылка }

Пытался решить эту проблему с помощью систематическое тестирование сервисов GCP и разрешений ролей. Все проверенные учетные данные учетной записи службы позволяют создавать экземпляры контейнеров и запускать gcloud или gutil в порядке. Однако пользовательские приложения создали контейнеры, но не смогли выполнить локальную запись даже в общее / рабочее пространство по умолчанию.

При использовании GCP Cloud Build локальные разрешения на чтение и запись не «проходят» из учетной записи службы по умолчанию в экземпляр среды выполнения. В документации по этому поводу нет ясности.

...