我有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服务器崩溃了。它发生了。所以我需要app
容器重启自己。确实如此。但是我在powershell控制台中丢失了日志。
从docker-compose up
开始,我看到了一切。
当app
容器崩溃并重新启动时,我从“新”app
容器中看不到任何内容。为什么呢?
如果我手动关闭app
容器并手动启动它,那么重新启动之前容器中的所有日志将再次向下滚动,就像尼亚加拉大瀑布一样!
错误?我自己的错误?
答案 0 :(得分:0)
容易回答,它既不是Docker错误,也不是您自己的错误=)
Docker日志分别连接到容器,因此,当您尝试查看日志(创建新的应用程序容器之后)时,您会注意到该日志为空,没有向上滚动的历史记录。 实际上,您要查找的日志已附加到您的旧容器中,该旧容器已被删除并由新的应用程序容器替换。
解决方法是,始终将日志文件从Rails应用程序内挂载到docker外部,这样就不会丢失任何数据。
即使停止或删除容器,日志/数据也将保持不变。