【发布时间】:2020-07-24 05:51:42
【问题描述】:
我对 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/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指定挂载卷的方法 - Kubernetes - 我安装了
docker.sock,但我在日志中不断收到错误消息,指出来自 git 服务的/app是只读的 - 计算引擎 - 与上述相同的错误
我不想通过将所有本地文件复制到其中然后上传来制作容器,因为依赖项可能非常大,因此要推送一个沉重的容器。
我有一个工作的 docker-compose,只想在 GCP 上使用它。最简单的方法是什么?
【问题讨论】:
-
您好,您找到好的解决方案了吗?
标签: docker google-cloud-platform docker-compose google-kubernetes-engine google-cloud-run