重启服务器后,部分Drone.io配置丢失了

时间:2017-01-17 20:16:43

标签: drone drone.io

我有一台Drone.io 0.5服务器在个人服务器上运行良好。

但是,在重新启动Drone运行的物理服务器之后,其配置,构建和机密丢失了。确切地说,部分信息丢失了。看起来关机杀死了Drone服务器,只有两天前的状态保存在磁盘上。无论如何,看起来剩下的配置已经损坏了,所以我不得不重新配置一切(repos,secrets等)。

有没有办法让Drone更频繁地在磁盘上刷新其数据?我担心意外重启,并再次遇到同样的问题。

编辑:我测试过,$ docker-compose stop足以停止服务器并保存所有数据。我仍然担心如果发生服务器崩溃该怎么办。

1 个答案:

答案 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数据库文件已损坏,请参阅以下内容。这很少见,但可能。因此,始终建议使用常规数据库备份。