Проблема развертывания приложения MERN с Docker на GCP App Engine. Разве развертывание может занять несколько часов? - PullRequest
1 голос
/ 15 апреля 2020

Я неопытен в Dev Ops, который привлек меня к использованию Google App Engine для развертывания моего приложения MERN. В настоящее время у меня есть следующие Dockerfile и entrypoint.sh:

# Dockerfile
FROM node:13.12.0-alpine
WORKDIR /app
COPY . ./
RUN npm install --silent  
WORKDIR /app/client
RUN npm install --silent
WORKDIR /app
RUN chmod +x /app/entrypoint.sh
ENTRYPOINT [ "/app/entrypoint.sh" ]
# Entrypoint.sh
#!/bin/sh
node /app/index.js &
cd /app/client
npm start

Внешний интерфейс React находится в папке client, которая находится в базовом каталоге приложения Node. Я пытаюсь развернуть их вместе и, как правило, предпочитаю использовать их вместе, а не по отдельности. Выполнение docker-compose up --build успешно повторно развертывает мое приложение на localhost.

Я создал очень простой файл app.yaml, необходимый для Google App Engine:

# app.yaml
runtime: custom
env: standard

Я прочитал в документации здесь для использования runtime: custom при использовании Dockerfile для настройки среды выполнения. Сначала я выбрал стандартную среду поверх гибкой, и поэтому добавил env: standard в качестве другой строки в app.yaml.

После установки и запуска gcloud app deploy все началось, однако для последние несколько часов это то, что я видел в моем окне терминала:

enter image description here Часы кажутся более высокой величиной времени, чем то, что кажется правильным для развертывания приложения, и я Я начал думать, что я сделал что-то не так. Любая помощь или руководство с этим будет принята с благодарностью!

1 Ответ

1 голос
/ 16 апреля 2020

Возможно, вы загружаете больше файлов, чем вам нужно.

Используйте файл .gcloudignore для описания файлов / папок, которые вы не хотите загружать. LINK

Возможно, вам придется изменить файловую структуру вашего текущего проекта.

Кроме того, возможно, стоит дополнительно изучить использование Standard nodejs10 runtime . Он загружается и запускается намного быстрее, чем альтернатива Flexible (пользовательская среда является частью App Engine Flex). Затем вы можете развернуть каждую часть в другой службе .

...