Как получить контейнер Docker, содержащий программу Google Sheets Writer (на Java) для создания «сохраненных учетных данных», если у программы их нет? - PullRequest
0 голосов
/ 13 марта 2019

Я новичок в докере, и у меня есть программа писателя Google Sheets на Java.При запуске его вне контейнера Docker он пытается создать файл «StoredCredential» на основе файла «credentials.json» в рабочем каталоге (он содержит ваш идентификатор клиента Google, секрет и т. Д.).Это делается путем открытия веб-браузера, когда вы (в браузере) входите в одну из своих учетных записей Google, чтобы продолжить «Быстрый запуск», и получаете проверочный код, чтобы программа Java продолжала работать как задумано (запись вуказанные ячейки в выбранном вами листе Google).После успешного запуска этой программы в первый раз создается «StoredCredential», поэтому для ее повторного запуска больше не требуется входить в одну из учетных записей Google с помощью веб-браузера.У меня есть Dockerfile для размещения всей этой программы в Docker-контейнере, и он выглядит следующим образом:

FROM java:8
COPY . /
WORKDIR /
RUN javac -cp "libs/*:." SheetsQuickstart.java
CMD ["java", "-cp", "libs/*:.", "SheetsQuickstart"]

В основном он копирует все файлы в рабочем каталоге программы (включая StoredCredential, если он еще был создан) вконтейнер Docker перед его компиляцией и подготовкой к запуску.Спецификации classpath "libs / " как для компиляции, так и для времени выполнения необходимы, потому что "libs / " содержит все необходимые файлы .jar для работы программы.Если я создаю образ из этого файла Docker, а «StoredCredential» уже находится в рабочем каталоге, то программа на Java работает как задумано.Но если я создаю изображение без «StoredCredential», то программа пытается создать учетные данные, как и раньше ... за исключением того, что после открытия ссылки в веб-браузере, выбора моей учетной записи Google и разрешения «Быстрый запуск» я получаюстраница с сообщением об ошибке: «Этот сайт не может быть достигнут. Localhost отказался подключиться. Поиск в Google для обратного вызова localhost 8888. ERR_CONNECTION_REFUSED.»В программе Java используется порт 8888. Я пытался запустить его следующим образом:

  docker run sheets
  docker run -p 8888 sheets

Они не решают эту проблему.Кто-нибудь знает, как заставить док-контейнер правильно взаимодействовать с вашим веб-браузером при попытке создать учетные данные Google Sheets?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...