前回の記事では、n8nを docker run で起動する方法を解説しました。
「とりあえず動かす」ことはできますが、
このまま運用すると確実に詰まります。
実際に自分は、
・ワークフローが全部消える
・同じ投稿を繰り返す
・アカウントが壊れる
という状態になりました。
原因はシンプルで、
データが保存されていないことです。
この記事では、この問題を解決するために
docker-compose を使った構成に切り替えます。
この記事でできるようになること
・n8nを「データが消えない状態」で運用できる
・Docker再起動後も自動で起動できる
・毎回コマンドを打たずに済む
docker-composeを使う理由
docker run は手軽ですが、管理には向いていません。
一方で docker-compose を使うと、
・設定をファイルで管理できる
・再起動が簡単になる
・データを保持できる
といったメリットがあります。
docker-compose.ymlの作成
まず、n8n用のフォルダを作成します。
エクスプローラーで任意の場所に作成してください。
例:C:\n8n
またはPowerShellで実行します。
mkdir C:\n8n
cd C:\n8nその中に、以下のファイルを作成します。
docker-compose.yml
version: "3"
services:
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
volumes:
- ./n8n_data:/home/node/.n8n
restart: always設定内容の解説
image
n8nio/n8n
公式のn8nイメージを使用します。
ports
5678:5678
ローカルの5678ポートとn8nを接続します。
volumes(最重要)
./n8n_data:/home/node/.n8nここが一番重要です。
これを設定していないと、
・n8nを停止した瞬間にデータが消える
・作ったワークフローがすべてリセットされる
つまり「毎回作り直し」になります。
この設定を入れることで、
・ワークフロー
・APIキー
・認証情報
すべてがPC側に保存され、
安心して運用できるようになります。
restart
always
Dockerが再起動しても、
自動でn8nが立ち上がります。
起動方法
docker compose(旧: docker-compose)を使用します。
※古い環境では docker-compose の場合もあります
docker compose up -d停止方法
docker compose down起動確認
ブラウザで以下にアクセスします。
n8nの画面が表示されれば成功です。
docker runとの違い
docker run と docker-compose の違い
| 項目 | docker run | docker compose |
|---|---|---|
| データ保存 | ❌ | ⭕ |
| 再起動 | ❌ | ⭕ |
| 管理性 | 低い | 高い |
この構成の位置づけ
この構成で、
「n8nを安全に使える最低ライン」
までは到達しています。
ただし、これだけでは
・同じ投稿を繰り返す
・状態管理ができない
・本番運用は不安定
といった問題は残ります。
次のステップ
次のステップ
ここから先は、実際に自動化を動かすための準備に入ります。
n8nを起動できても、APIが使えないと投稿はできません。
そのため、まずは以下の準備を進めます。
・X(Twitter)Developer Portalの登録
・OpenAI APIの登録
実装と構成について
今回の構成をベースに、
・Postgresでの状態管理
・n8nのワークフロー構築
・X投稿自動化の実装
まで含めた内容をまとめています。
正直ここが一番重要で、
これをやらないと同じ投稿を繰り返してアカウントが壊れます。
うまくいかない場合
・ポート5678が使用中
→ Docker Desktopを再起動
・画面が開かない
→ http://localhost:5678 を直接入力
・n8n_dataフォルダが作られない
→ docker-compose実行後に確認
まとめ
docker-composeを使うことで、
・データが消えない
・再起動が簡単
・運用できる状態になる
という大きなメリットがあります。
まずはこの構成で、
「n8nを継続的に使える状態」を作ってください。

