gcloud docker-compose deploy 主容器(子项目的解决方案)

Posted

技术标签:

【中文标题】gcloud docker-compose deploy 主容器(子项目的解决方案)【英文标题】:gcloud docker-compose deploy main container (solution with sub projects) 【发布时间】:2022-01-08 10:32:06 【问题描述】:

我开发了一个解决方案。该解决方案由 3 个项目组成。 (有的文档称它们为服务,有的称它们为容器,但我们知道这些是 docker-compose 的容器和子容器)

    应用程序本身 Db - SQL Peoje Redis

当我使用 docker-compose 构建这个解决方案时,我可以在一个公共容器下看到 3 个图像。并以这种方式;它使用 docker-compose build 和 up 在我的本地环境中工作。 我想将解决方案按原样(作为主容器和子容器)部署到谷歌云。在阅读文档以将项目上传到 Google 端时,我尝试了大约 6-7 种不同的方式。但我无法理解理想是什么。到处都是文档,却没有写出健康简单的方法。

即使使用一两种方法,当我部署时。它没有给出错误,它似乎正在工作,但是;当我打开 url 时,它给出了 404。无论如何它都没有发生。

以下是适用于大型项目的小型项目的 ABC 方法。你能在表格中提供信息吗?我唯一的目标是让容器在那里运行 3 个服务。请给我这个特殊(但不是很特殊)案例的纯地址。

奖励:您可以给出真实的定义并区分所有非常复杂的 gpc、引擎、云运行

docker-compose.yaml

version: '3.4'

services:
  cms:
    image: $DOCKER_REGISTRY-cms
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ich_app
    ports:
      - "80:8080"
    depends_on:
      - db

  db:
    image: "mcr.microsoft.com/mssql/server"
    container_name: ich_db
    ports:
      - "$DOCKER_SQL_PORT:-1433:1433"
    expose:  
      - 1433  
    environment: 
      - ACCEPT_EULA=Y
      - MSSQL_PID=Express
      - SA_PASSWORD=PassWORDD!
    volumes:
      - C:\db_backups\ichte\:/usr/share/
    depends_on:
      - redis

  redis:
    container_name: ich_redis
    image:  redis

【问题讨论】:

您使用的是 Windows 基础镜像而不是 Linux 镜像,它无法工作。此外,您使用的卷和无服务器产品是无状态的。最后,您使用 Redis,但无服务器产品只能提供 HTTP 流量。使用 CODE answer 使用托管服务退出您的应用程序,而不是部署现有容器。其他使用原始云产品:VM! 【参考方案1】:

至少有一个您定义的容器 (db) 需要 Windows 运行时,这将限制您的选择。您可以将 Windows 部署到 GKE,请参阅https://cloud.google.com/kubernetes-engine/docs/concepts/windows-server-gke

您还将部署三个容器,其中两个选项作为托管服务提供:SQL Server on Google Cloud 和 Memorystore for Redis。

如果您部署托管服务,然后将它们连接到您的容器,您可能会很幸运。

【讨论】:

以上是关于gcloud docker-compose deploy 主容器(子项目的解决方案)的主要内容,如果未能解决你的问题,请参考以下文章

gcloud 组件更新失败

如何使用 Cloud Build 在 GCP 上部署功能?

带有Gcloud错误的Rails:(gcloud.preview.app.deploy)错误响应:[13]意外错误。部署版本:

Gcloud Compute - 虚拟机不断终止

gcloud:用户无权访问服务帐户“默认”

Gcloud 部署特定文件