Я могу сделать это успешно:
- Объединить мое приложение в docker изображение
- Создать это изображение в контейнере с помощью Google Cloud. Построить на pu sh, чтобы освоить
- (Этот контейнер хранится в реестре, например,
gcr.io/my-project/my-container
)
- Развернуть этот контейнер в Интернете с помощью Google Cloud Run
- Посетите URL-адрес Cloud Run и перейдите на мой веб-сайт.
Сейчас я пробую более сложные сборки и думаю, что следующим шагом будет использование Google Compute Engine.
Для начала я просто пытаясь развернуть один экземпляр того же приложения, которое я развернул в Cloud Run:
- Перейдите к
Compute Engine > VM Instances
- Введите основы, такие как имя экземпляра
- Enter расположение моего контейнера в разделе «Образ контейнера»:
gcr.io/my-project/my-container
- (Кроме того, я нахожу подозреваемым, что интерфейс не предлагает селектор для существующих элементов реестра контейнеров здесь.)
- Выберите «Разрешить трафик HTTP c» и «Разрешить HTTPS» Traffi c "
- Нажмите« Создать »
GCE потребуется минута, чтобы создать его, а затем он показывает зеленую галочку и имя экземпляра и« Внешний IP: 35.238 » .xxx.xxx». Я захожу на этот URL в своем браузере и получаю ... "35.238.xxx.xxx отказался подключаться."
Для проверки я go вернусь на страницу GCE и выберу "S SH> Открыть в окне браузера "рядом с моим экземпляром, который открывает тип облачного терминала для машины.
В этом окне терминала введите ps
и увидите, что ни один процесс не запущен. Контейнер Dockerfile
оканчивается на CMD yarn start:prod
, так что, я думаю, здесь этого не происходит.
Далее, я ls
здесь и там и перемещаюсь вокруг, и вижу, что из моего каталога нет каталога /app
Команда Dockerfile
WORKDIR /app
. Похоже, что мое приложение не только не загрузилось, но и контейнер не был скопирован в экземпляр виртуальной машины?
Что я делаю не так?