我有一台Drone.io 0.5服务器在个人服务器上运行良好。
但是,在重新启动Drone运行的物理服务器之后,其配置,构建和机密丢失了。确切地说,部分信息丢失了。看起来关机杀死了Drone服务器,只有两天前的状态保存在磁盘上。无论如何,看起来剩下的配置已经损坏了,所以我不得不重新配置一切(repos,secrets等)。
有没有办法让Drone更频繁地在磁盘上刷新其数据?我担心意外重启,并再次遇到同样的问题。
编辑:我测试过,$ docker-compose stop
足以停止服务器并保存所有数据。我仍然担心如果发生服务器崩溃该怎么办。
答案 0 :(得分:1)
Drone将所有数据保存到数据库中。如果您使用的是默认配置,那么这是一个sqlite数据库。文档建议在创建数据库的路径上将卷装入主机,以便将数据库写入主机,而不会在销毁容器时销毁。
Drone在主机上安装卷以持久保存sqlite数据库。使用备用数据库引擎时不需要这样做。
services:
drone-server:
image: drone/drone:0.5
ports:
- 80:8000
volumes:
- ./drone:/var/lib/drone/
restart: always
有没有办法让Drone更频繁地在磁盘上刷新其数据?我担心意外重启,并再次遇到同样的问题。
SQLite不会将数据存储在内存中。数据库事务完成后,记录将写入磁盘。任何符合ACID标准的数据库都需要这样做。
无论如何,看起来剩下的配置已经损坏了
如果您认为您的SQLite数据库文件已损坏,请参阅以下内容。这很少见,但可能。因此,始终建议使用常规数据库备份。