Ruby on rails Docker,Docker compose,重新启动:除非停止控制台中的松散日志
我有一个Ruby on rails Docker,Docker compose,重新启动:除非停止控制台中的松散日志,ruby-on-rails,powershell,docker,docker-compose,dockerfile,Ruby On Rails,Powershell,Docker,Docker Compose,Dockerfile,我有一个docker compose.yml3版,非常好用: version: '3' services: db: image: postgres restart: unless-stopped ports: - "5432:5432" redis: image: redis restart: unless-stopped ports: - "6379:6379" app: build: .
docker compose.yml
3版,非常好用:
version: '3'
services:
db:
image: postgres
restart: unless-stopped
ports:
- "5432:5432"
redis:
image: redis
restart: unless-stopped
ports:
- "6379:6379"
app:
build: .
restart: unless-stopped
command: bash ./script.sh
volumes:
- bundle:/bundle
ports:
- "3000:3000"
- "1234:1234"
depends_on:
- db
- redis
stdin_open: true
tty: true
volumes:
bundle: {}
我将它与Rails一起使用,并从Windows端口1234调试连接。一切都很好
但是
有时我的Rails服务器崩溃。这是常有的事。因此,我需要应用程序
容器重新启动自身。确实如此。但我在powershell控制台中丢失了日志
从docker compose up开始时,我看到了一切
当app
容器崩溃并重新启动时,我看不到“new”app
容器中的任何内容。为什么?
如果我手动关闭app
容器并手动启动它,则重新启动之前容器中的所有日志会再次向下滚动,就像尼亚加拉瀑布一样
臭虫?我自己的bug?答案很简单,它既不是docker bug,也不是你这边的bug=) Docker日志分别附加到容器,因此当您尝试查看日志时(在创建新的应用程序容器之后),您会注意到它是空的,并且没有可向上滚动的历史记录。 事实上,您正在查找的日志已附加到旧容器,该容器已被删除并替换为新的应用程序容器 作为一种解决方法,只需将日志文件从rails应用程序内部装载到docker外部,这样就不会丢失任何数据 即使停止或删除容器,日志/数据也将保持不变