0

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

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

有什么方法可以让 Drone 更频繁地刷新磁盘上的数据?我担心意外重启,并且再次遇到同样的问题。

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

4

1 回答 1

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 数据库文件已损坏,以下是一些推荐阅读。这将是罕见的,但可能。因此,始终建议定期进行数据库备份。

于 2017-01-18T01:53:26.657 回答