我有一个Express应用程序,用作WebSocket服务器和React Vite前端(非静态),需要部署到GCP或AWS。这是应用程序的文件夹结构
/my-app
/frontend
/Dockerfile
/backend
/Dockerfile
docker-compose.yaml
我能够为每个文件创建Docker镜像,并使用根文件夹中的docker-compose将它们容器化。我在本地测试了这个容器,它工作得很完美。但是,我无法在网上找到任何关于如何部署这个的帮助。
根据我的理解,我必须将每个Docker镜像推送到容器注册表,然后将其部署在GCP或AWS上。我面临的困惑是我在一个容器中有两个图像或盒子。我不应该把容器推到容器注册表吗?它会有CORS问题吗?因为我没有在前端或后端做任何env变量,只是暴露了端口。我在某个地方读到,只要前端和后端都在同一个网络中,主机就会被Map到0.0.0.0
。
什么是最好的方法和实践来dockerize和部署这样的应用程序?我需要使用Kubernetes吗?前端不是一个静态站点,也不使用构建版本,它由npm run dev
运行,并通过Websockets连接到后端。后端维护一个开放的连接,并将消息发送回前端。
1条答案
按热度按时间7kjnsjlb1#
我最终成功地在cloudrun中部署了我的容器aka镜像。很简单。只需要在cloudrun中创建生产URL env变量,它们就可以完美地工作。任何可能有用的人,
1.将Docker镜像推送到容器注册表
1.在cloudrun中部署它们并复制URL
1.重新编辑部署并创建新的env变量,粘贴process.env.PORT或其他的生产url,然后重新部署