gpt4 book ai didi

docker-compose - 在Google Cloud Engine中运行docker-compose

转载 作者:行者123 更新时间:2023-12-04 03:56:26 24 4
gpt4 key购买 nike

我正在尝试在容器优化的Google Cloud Compute Engine节点内运行一个小型docker-compose应用程序,但是当它尝试在docker-compose up期间挂载卷时却卡住了:

Creating lightning_redis_1 ... 
Creating lightning_db_1 ...
Creating lightning_redis_1
Creating lightning_db_1 ... done
Creating lightning_api_1 ...
Creating lightning_api_1 ... error
ERROR: for lightning_api_1 Cannot start service api: error while creating mount source path '/rootfs/home/jeremy/lightning': mkdir /rootfs: read-only file sys
tem
ERROR: for api Cannot start service api: error while creating mount source path '/rootfs/home/jeremy/lightning': mkdir /rootfs: read-only file system
Encountered errors while bringing up the project.
jeremy@instance-1 ~/lightning $

我的docker-compose.yml文件如下所示:
version: '3'
services:
client:
build: ./client
volumes:
- ./client:/usr/src/app
ports:
- "4200:4200"
- "9876:9876"
links:
- api
command: bash -c "yarn --pure-lockfile && yarn start"
sidekiq:
build: .
command: bundle exec sidekiq
volumes:
- .:/api
depends_on:
- db
- redis
- api
redis:
image: redis
ports:
- "6379:6379"
db:
image: postgres
ports:
- "5433:5432"
api:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db

我不想更改docker-compose.yml文件中的任何内容-我希望能够通过在VM本身内部运行命令或设置VM的方式来解决此问题。原因是这不是我的代码,我无法轻松更改docker-compose.yml文件,我需要做的只是在短时间内运行它并在VM中执行一些docker-compose命令。

最佳答案

容器优化的OS通常会将大多数路径安装为只读。这就是为什么您得到错误

source path '/rootfs/home/jeremy/lightning': mkdir /rootfs: read-only file sys

所以你别无选择

在docker-compose 中使用命名卷

您将需要像下面那样更改音量
volumes:
- myappvol:/myapp

并定义撰写中的顶级卷
volumes:
myappvol: {}

如您所说,您不想修改Yaml,那么这可能对您不起作用

在docker 内部运行docker-compose

当前,您在主机上运行 docker-compose,而应在另一个具有主根文件夹的docker容器内使用 docker-compose
docker run \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$PWD:/rootfs/$PWD" \
-w="/rootfs/$PWD" \
docker/compose:1.13.0 up

这可以工作,但数据将持久保存在Docker容器本身中。

有关更多详细信息,请参见下面的文章

https://cloud.google.com/community/tutorials/docker-compose-on-container-optimized-os

关于docker-compose - 在Google Cloud Engine中运行docker-compose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46174297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com