docker-compose.yml 在 Google 云端 运行
docker-compose.yml in Google Cloud Run
当涉及到 docker-compose、Dockerfile 以及 GCP 的服务 Cloud 运行 的工作方式时,我有一个很大的理解问题。这让我无法在我拥有的项目中取得进展,而且我几乎没有什么可以尝试的。
我有一个包含以下内容的 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
如您所见,它非常简单,两项服务一项用于带有 php 的应用程序,一项用于服务器。两者都有自己的 docker 文件,并且构建是正确的。在本地一切正常,没有问题。
我现在想在 GCP 上的云 运行 服务中部署这些服务。挖掘之后,我发现可能只能使用单个 Dockerfile
来部署服务。没有办法将 docker-compose.yml 容器部署到云 运行 吗?我应该使用其他服务吗?
直接的答案是:不,这行不通 as-is!你必须更新你的包装。
首先,Cloud 运行 不允许您装载卷。你需要有一个无状态的容器。使用这些文件构建容器,不要加载外部卷
其次,为了构建Frontend-backend架构,我不建议将静态部分托管在云端运行。最好(更便宜、更快)将静态文件存储在 Cloud Storage(前端)上,让动态处理(后端)在 Cloud 运行 上进行。然后,在前面放一个HTTPS Global Loadbalancer, with CDN option activated. Configure 2 backend, one with a Cloud Storage backend for the front, the second a serverless NEG for Cloud Run.
是的,需要大量返工...或者您可以为此使用传统的 IaaS 和 VM,但您失去了可扩展性和无服务器功能的所有优势。
当涉及到 docker-compose、Dockerfile 以及 GCP 的服务 Cloud 运行 的工作方式时,我有一个很大的理解问题。这让我无法在我拥有的项目中取得进展,而且我几乎没有什么可以尝试的。
我有一个包含以下内容的 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
如您所见,它非常简单,两项服务一项用于带有 php 的应用程序,一项用于服务器。两者都有自己的 docker 文件,并且构建是正确的。在本地一切正常,没有问题。
我现在想在 GCP 上的云 运行 服务中部署这些服务。挖掘之后,我发现可能只能使用单个 Dockerfile
来部署服务。没有办法将 docker-compose.yml 容器部署到云 运行 吗?我应该使用其他服务吗?
直接的答案是:不,这行不通 as-is!你必须更新你的包装。
首先,Cloud 运行 不允许您装载卷。你需要有一个无状态的容器。使用这些文件构建容器,不要加载外部卷
其次,为了构建Frontend-backend架构,我不建议将静态部分托管在云端运行。最好(更便宜、更快)将静态文件存储在 Cloud Storage(前端)上,让动态处理(后端)在 Cloud 运行 上进行。然后,在前面放一个HTTPS Global Loadbalancer, with CDN option activated. Configure 2 backend, one with a Cloud Storage backend for the front, the second a serverless NEG for Cloud Run.
是的,需要大量返工...或者您可以为此使用传统的 IaaS 和 VM,但您失去了可扩展性和无服务器功能的所有优势。