如何使用 Nodejs 前端、后端和 Docker 部署到 Heroku

How to deploy to Heroku with Nodejs frontend, backend, and Docker

有类似的帖子,但我的案例是关于 NodeJS-frontend-backend-Docker-Heroku 的,所以我已经坚持了整整一个星期了。

任务:我有 2 个文件夹前端和后端。我在它们中都有 Docker 文件,例如 /frontend/Dockerfile 和 /backend/Dockerfille。我在根目录中也有 docker-compose.yml 和 Procfile。

尝试 1:更改为 Dockerfile.frontend 和 Dockerfile.backend。我使用 heroku:container push --recursive。在 Heroku 上成功部署它,我也已经有 scale=1。没用。

尝试 2:将 Dockerfile.frontend 更改为 Dockerfile.web 和 Dockerfile.backend。前端网络正在运行,但我无法登录,所以我不能确定。我无法使用 POST https://mycoolapp.herokuapp.com/api/users/login 调用 api 后端请求。我也用了 Postman 也没有任何反应。

我的猜测:后端要么根本不工作,要么我使用 process.env.PORT || localhost:5000 不正确。

我真的需要帮助。对不起我的英语不好。谢谢。

我通过将前端和后端推送到不同的应用程序来解决它。

对于每个文件夹,我将有 1 个具有 web npm start

的 Procfile

然后,我会将前端的 API 从 localhost:5000/api/info 更改为 myappname.herokuapp.com/api/info

解释 : 我相信 'web' process-type 是唯一接受外部 HTTP 的特殊类型。所以我的后端以前没有工作,而我的前端(网络)工作。