mik*_*oss 4 docker google-cloud-platform docker-compose google-cloud-run
当涉及到 docker-compose、Dockerfile 以及 GCP 的服务 Cloud Run 的工作原理时,我有一个很大的理解问题。这使我无法在我拥有的项目中取得进展,而且我几乎无所事事可尝试。
我有一个 docker-compose.yml 文件,内容如下:
version: '2'
services:
# The Application
app:
container_name: laravel_app
build:
context: ./
dockerfile: docker/app.dockerfile
volumes:
- ./storage:/var/www/storage
# The Web Server
web:
container_name: nginx_server
build:
context: ./
dockerfile: docker/web.dockerfile
volumes:
- ./storage/logs/:/var/log/nginx
ports:
- 8080:80
Run Code Online (Sandbox Code Playgroud)
如您所见,它非常简单,有两种服务,一种用于带有 php 的应用程序,另一种用于服务器。两者都有自己的 dockerfiles 并且构建是正确的。在本地一切正常,没有问题。
我现在想在 GCP 上的 Cloud Run 服务中部署这些服务。在挖掘之后,我发现可能只能使用单个Dockerfile. 有没有办法将 docker-compose.yml 容器部署到 Cloud Run?我应该使用其他服务吗?
gui*_*ere 13
直接的答案是:不,它不会按原样工作!您必须更新您的包装。
首先,Cloud Run 不允许您挂载卷。你需要一个无状态的容器。用这些文件构建你的容器,不要加载外部卷
其次,为了构建一个前后端架构,我不建议将静态部分托管在 Cloud Run 上。将静态文件存储在 Cloud Storage(前端)上并让动态处理(后端)在 Cloud Run 上会更好(更便宜、更快)。然后,在前面放置一个HTTPS Global Loadbalancer,并激活 CDN 选项。配置 2 个后端,一个是前端的 Cloud Storage 后端,第二个是Cloud Run的无服务器 NEG。
是的,需要大量返工……或者您可以为此使用传统的 IaaS,使用 VM,但您失去了可扩展性和无服务器功能的所有优势。
| 归档时间: |
|
| 查看次数: |
4104 次 |
| 最近记录: |