![](/img/trans.png)
[英]How to deploy in Openshift Container Platform using docker-compose?
[英]How to deploy container using docker-compose to google cloud?
我对 GCP 很陌生,主要使用 AWS。 我目前正在尝试使用 GCP 并希望使用docker-compose
部署一个容器。
我设置了一个非常基本的 docker-compose.yml 文件,如下所示:
# docker-compose.yml
version: '3.3'
services:
git:
image: alpine/git
volumes:
- ${PWD}:/git
command: "clone https://github.com/PHP-DI/demo.git"
composer:
image: composer
volumes:
- ${PWD}/demo:/app
command: "composer install"
depends_on:
- git
web:
image: php:7.4-apache
ports:
- "8080:${PORT:-80}"
- "8000:${PORT:-8000}"
volumes:
- ${PWD}/demo:/var/www/html
command: php -S 0.0.0.0:8000 -t /var/www/html
depends_on:
- composer
所以容器会从 git 获取代码,然后使用 composer 安装依赖,最后在 8000 端口可用。
在我的机器上,运行docker-compose up
可以完成所有操作。 但是如何将这个 docker-compose 推送到谷歌云。
我尝试使用 docker docker/compose
图像和 Dockerfile 构建一个容器,如下所示:
FROM docker/compose
WORKDIR /opt
COPY docker-compose.yml .
WORKDIR /app
CMD docker-compose -f /opt/docker-compose.yml up web
然后将容器推送到注册表。 从那里我尝试部署到:
/var/run/docker.sock
指定安装卷的方法docker.sock
但我在日志中不断收到错误消息,表明来自 git 服务的/app
是只读的我不想通过将所有本地文件复制到其中然后上传来制作容器,因为依赖项可能非常大,因此需要推送一个沉重的容器。
我有一个可用的 docker-compose,只想在 GCP 上使用它。 最简单的方法是什么?
这可以通过在项目根目录中创建 cloudbuild.yaml 文件来完成。 将以下步骤添加到 cloudbuild.yaml:
steps:
# running docker-compose
- name: 'docker/compose:1.26.2'
args: ['up', '-d']
在 Google Cloud Platform > Cloud Builder 上:将构建配置的文件类型配置为 Cloud Build 配置文件(yaml 或 json),输入文件位置:cloudbuild.yaml
如果调用触发器的存储库事件设置为“推送到分支”,则 Cloud Build 将启动 docker-compose.yml 来构建您的容器。
看看Kompose 。 它可以帮助您将 docker 组合指令转换为 Kuberenetes 特定的部署和服务。 然后,您可以将 Kubernetes 文件应用于您的 GKE 集群。 请注意,您必须先构建容器并存储在 Container Registry 中,然后相应地更新服务定义中的图像标签。
如果您尝试在 GCE 中设置与本地 VM 相同的设置,则可以安装并运行它们。 参考: https://dev.to/calvinqc/the-easiest-docker-docker-compose-setup-on-compute-engine-1op1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.