2017-01-17 13 views
0

個人用サーバでDrone.io 0.5サーバがうまく機能しています。サーバの再起動後にDrone.ioの一部が失われました

しかし、再起動後、Droneが動作する物理サーバー、その構成、ビルド、および秘密が失われました。正確には、情報の一部が失われました。シャットダウンがDroneサーバーを殺し、2日前の状態だけがディスクに保存されたように見えます。とにかく、残った設定が壊れているように見えたので、すべてを再設定する必要がありました(レポ、秘密など)

ディスク上のデータをより頻繁にフラッシュする方法はありますか?私は予期せぬ再起動が心配で、同じ問題が再発する。

EDIT:私がテストしたと$ docker-compose stopは、サーバーを停止し、すべてのデータを保存するのに十分です。私はまだサーバークラッシュの場合に何をすべきか心配しています。

+0

「残っ設定が破損していたようにそれが見えた」あなたはそれが破損していたと思う理由は...あなたは説明できますか?データの消失とデータの破損は必ずしも同じではありません。この質問は両方とも –

+0

です。自分自身を説明しましょう。サーバーを再起動した後、私は再びDroneを起動しました。私はUIにアクセスしたときに私のリポジトリを見つけましたが、各パイプラインを再起動しようとしましたが、機能しませんでした。申し訳ありません。私はスクリーンショットを撮っていませんでした。私はsqlliteデータベースを削除して、やり直しました。 –

+0

これは、データが破損していないことを示しています。破損したデータベースファイルは開かれません。 Droneを再起動したときに、ファイルが破損して開くことができない場合、Droneはエラーで終了し、起動しませんでした。 –

答えて

1

Droneはすべてのデータをデータベースに保存します。デフォルト設定を使用している場合、これはsqliteデータベースです。このドキュメントでは、データベースがホストマシンに書き込まれ、コンテナが破棄されたときに破棄されないように、データベースが作成されたパスでホストマシンにボリュームをマウントすることを推奨しています。

Droneは、ホストマシン上にボリュームをマウントし、sqliteデータベースを永続化します。これは、代替データベースエンジンを使用する場合は必要ありません。

services: 
    drone-server: 
    image: drone/drone:0.5 
    ports: 
     - 80:8000 
    volumes: 
     - ./drone:/var/lib/drone/ 
    restart: always 

ドローンがより頻繁にディスク上のデータをフラッシュにする方法はありますか?私は予期せぬ再起動が心配で、同じ問題が再発する。

SQLiteはデータをメモリに保存しません。データベーストランザクションが完了すると、そのレコードはディスクに書き込まれます。これは、ACID準拠のデータベースで必要となります。あなたはSQLiteデータベースファイルが破損したと考えられる場合は残っ設定が

を破損していたよう

はとにかく、それが見えた、以下のいくつかの推奨読書です。これはまれですが、可能です。このため、定期的なデータベースのバックアップが常に推奨されます。

+0

実際には、ボリューム「./drone:/var/lib/drone」を使用しています。 UIは2日前からのステータスを表示するので、私はそれが "フラッシュ"問題だと思ったが、はい、あなたの言うことを理解しています。データベースが破損しただけです。私はSQLiteデータベースのバックアップに関するあなたの助言に従います。ご協力いただきありがとうございます! –

関連する問題