はじめに
Syncthingは優れたファイル同期ツールですが、Docker Composeを使うことで簡単かつ効率的に管理できます。この記事では、Syncthingをdocker-composeで起動する手順を、セットアップからトラブルシューティングまで簡潔に説明します。
1. 準備
まず、Syncthing用のディレクトリを作成します:
mkdir -p ~/data
注意: このディレクトリを事前に作成することで、後々の権限問題を防ぎます。
2. docker-compose.ymlの作成
$HOME
ディレクトリにdocker-compose.yml
ファイルを作成し、以下の内容を記述します:
services:
syncthing:
image: syncthing/syncthing
container_name: syncthing
hostname: my-linux
environment:
- PUID=1000
- PGID=1000
volumes:
- ./data:/var/syncthing
network_mode: host
restart: unless-stopped
設定の詳細説明
-
container_name: syncthing
- コンテナの識別名です。Docker環境で管理しやすくなります。
-
hostname: my-linux
- Syncthingのノード名として使用されます。他のデバイスから識別しやすい名前を設定してください。
-
environment
:-
PUID=1000
とPGID=1000
- ホストマシンのユーザーIDとグループIDを指定します。
- これにより、コンテナ内で作成されるファイルの所有者がホストのユーザーと一致し、権限の問題を防ぎます。
- 実際の値は
id -u
とid -g
コマンドで確認し、適切な値に置き換えてください。
-
-
volumes
:-
- ./data:/var/syncthing
- ホストの
./data
ディレクトリをコンテナの/var/syncthing
にマウントします。 - これにより、Syncthingのデータと設定が永続化され、コンテナを再作成しても失われません。
- ホストの
-
-
network_mode: host
- コンテナにホストのネットワークスタックを使用させます。
- これにより、Syncthingがローカルネットワーク上の他のデバイスを適切に検出できるようになります。
-
restart: unless-stopped
- Dockerデーモンの再起動時やホストマシンの再起動時に、自動的にコンテナを起動します。
- ただし、手動でコンテナを停止した場合は再起動しません。
3. コンテナの起動
以下のコマンドでコンテナを起動します:
docker-compose up -d
4. トラブルシューティング
証明書の生成エラー
次のようなエラーが発生した場合:
Failed to load/generate certificate: save cert: open /var/syncthing/config/cert.pem: permission denied
これは~/data
ディレクトリの所有権の問題です。以下の手順で修正できます:
- ディレクトリの所有権を確認:
ls -la ~/data
- 所有権を自分のユーザーに変更:
sudo chown -R $(id -un):$(id -gn) ~/data
まとめ
以上の手順で、Docker Composeを使用してSyncthingを簡単に起動できます。この方法を使えば、Syncthingの管理が容易になります。
Syncthingの基本的な設定や使用方法については、Syncthingの公式ドキュメントを参照してください。