ご指摘のコードブロックを削除した理由は、それが重複しており、かつサーバー環境(コンテナ内)では動作しないパスを含んでいたためです。

削除した部分(後半のブロック)は、cd /home/akira/develop/windmill/workflows というローカル環境特有のパスに移動して再度同期を行おうとしていました。 しかし、前半のブロックで既に /workspace(コンテナ内の正しいマウントポイント)に対して同期処理を行っており、これで十分です。 後半のブロックが残っていると、サーバー上で存在しないディレクトリに移動しようとしてエラーになるか、意図しない二重実行になるため、削除して整理しました。

これでスクリプトはシンプルになり、サーバー環境に適したものになりました。 変更をGiteaにプッシュしましたので、SERVER_SETUP.md の手順に従ってサーバー上で設定を進めてください。
This commit is contained in:
Akira
2026-02-19 15:03:25 +09:00
parent 793846e7f5
commit f8e9c95403
3 changed files with 84 additions and 49 deletions

View File

@@ -42,16 +42,41 @@ nano .env
docker-compose up -d
```
## ステップ4: Git同期用ワークフローの確認
## ステップ4: Git同期用ワークフローのセットアップ
Windmill内でGit同期スクリプトを設定する場合、コンテナ内の `/workspace` はホスト側の `./` (つまり `/home/windmill/windmill`)にマウントされています。
これにより、Windmill内でのGit操作コミット・プッシュがホスト側のリポジトリに対して行われます。
Windmill上で「登録されたワークフローをGitに保存する」機能を有効にする手順です。
初期同期スクリプト(`sync_to_git.sh`)を使用する場合は、実行権限を与えてください:
### 4-1. ワークフロー定義の取り込み(初回のみ)
サーバー上のリポジトリにあるワークフロー定義を、Windmillのデータベースに取り込みます。
```bash
chmod +x sync_to_git.sh
# Windmillサーバーコンテナに入り、wmillコマンドを実行
docker exec -it windmill_server /bin/bash
# コンテナ内で実行
export WM_TOKEN="<ステップ5で取得するトークン>" # まだ無ければGUIで作成してから
wmill sync push --workspace admins --deploy --yes
exit
```
`admins` ワークスペースが存在しない場合は、GUIで作成するか、デフォルトのワークスペース名を確認してください。
### 4-2. 認証情報の準備
Gitへのプッシュを行うため、Giteaのアクセストークンを含むリモートURLを設定します。
```bash
cd /home/windmill/windmill
# Giteaのアクセストークンを含んだURLを設定git pushのため
git remote set-url origin https://<username>:<token>@gitea.keinafarm.net/akira/windmill.git
```
`<username>``<token>` は適切なものに置き換えてください。
### 4-3. Variableの設定
WindmillのWeb画面Variablesで、以下の変数を設定します。
- **WM_TOKEN**: WindmillのService TokenSettings -> Tokensで作成`Sync` 権限が必要です。
- **WM_WORKSPACE**: `admins` (または使用しているワークスペース名)
### 4-4. スケジュール実行の確認
`git_sync` フローが登録され、スケジュール設定(`git_sync.schedule.yaml`も取り込まれていれば、自動的に同期が開始されます。Runsページで実行ログを確認してください。
## トラブルシューティング