TL: DR - Я пытаюсь развернуть мое приложение стека MERN в GCP Cloud Run. Борьба с тем, что я считаю проблемой порта.
Мое приложение React находится в папке client
внутри моего приложения Node.js.
Вот мой Dockerfile
для запуска как внешнего, так и внутреннего интерфейса:
FROM node:13.12.0-alpine
WORKDIR /app
COPY . ./
# Installing components for be connector
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
docker-compose up
работает локально, а docker run -p 8080:8080 -p 3000:3000 <image_id>
запускает созданный мной образ. Порт 8080 предназначен для узла и порт 3000 для приложения React. Однако в Cloud Run приложение не работает. Когда я захожу в приложение, развернутое в Cloud Run, веб-интерфейс сначала загружается за доли секунды, но затем происходит сбой приложения, когда оно пытается выполнить запросы к API.
In Дополнительные настройки , есть порт контейнера, который по умолчанию равен 8080. Я пытался изменить это на 3000, но ни один не работает. Я не могу ввести 8080,3000, поскольку поле принимает действительные целые числа только для порта. Можно ли одновременно развернуть React + Node в Cloud Run? Как я могу прослушать Cloud Run на 8080 и 3000, а не на 1 из 2?
Спасибо!