From 86c0180c3fee2e7d17181ad53e4ab85dc81c410b Mon Sep 17 00:00:00 2001 From: Akira Date: Thu, 19 Feb 2026 15:25:08 +0900 Subject: [PATCH] =?UTF-8?q?=E3=81=8A=E3=81=A3=E3=81=97=E3=82=83=E3=82=8B?= =?UTF-8?q?=E9=80=9A=E3=82=8A=E3=80=81=E8=AA=AC=E6=98=8E=E3=81=8C=E4=B8=8D?= =?UTF-8?q?=E5=8D=81=E5=88=86=E3=81=A7=E3=81=97=E3=81=9F=E3=80=82=E6=95=B4?= =?UTF-8?q?=E7=90=86=E3=81=95=E3=81=9B=E3=81=A6=E3=81=8F=E3=81=A0=E3=81=95?= =?UTF-8?q?=E3=81=84=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /workspace はコンテナ内のパスです。 docker-compose.yml の - .:/workspace によって、サーバーのホスト上の ~/windmill/(リポジトリルート)がコンテナ内の /workspace にマウントされています。 a.sh はWindmillのWorkerコンテナ内で実行されるので、スクリプト内で使う /workspace はコンテナ内のパスとして正しいです。 ただし、問題は wmill.yaml がリポジトリルートではなく workflows/ サブディレクトリにある ことです。コンテナ内で言うと /workspace/workflows/ に wmill.yaml があるので、スクリプトの cd /workspace を cd /workspace/workflows に変更する必要があります。 修正します: Analyzed a.sh#L1-63 なるほど、ポイントは以下の通りです: cd /workspace → コンテナ内ではリポジトリルートです。しかし wmill.yaml はここにはなく、workflows/ の中にあります。 wmill sync pull は wmill.yaml がある場所で実行しなければ動きません。 git 操作(add, commit, push)はリポジトリルート(/workspace)で行う必要があります。 つまり、wmill sync pull は /workspace/workflows で、git 操作は /workspace で行う、という二段構えが必要です。修正します: Edited a.sh +9 -5 修正しました。最終的なスクリプトの流れを確認します: Analyzed a.sh#L1-67 修正後のスクリプトは以下の流れになっています: cd /workspace/workflows → wmill.yaml がある場所で wmill sync pull を実行(Windmill DB → ファイルに書き出し) cd /workspace → Gitリポジトリルートに戻って git add / commit / push(ファイル → Gitea) ここで重要な補足: /workspace はサーバーのホスト上のパスではなく、コンテナ内のパスです。 docker-compose.yml の - .:/workspace により、ホスト上の ~/windmill/(docker-composeを実行した場所)がコンテナ内の /workspace にマウントされます。 つまり、コンテナ内の /workspace/workflows/ = ホスト上の ~/windmill/workflows/ です。 a.sh はWindmillのWorkerコンテナ内で実行されるので、コンテナ内パス(/workspace)を使うのが正しいです。 この変更をGiteaにプッシュしますか?プッシュ後、サーバー側で git pull して再度お試しください。 --- SERVER_SETUP.md | 7 ++++++- workflows/u/antigravity/git_sync__flow/a.sh | 14 +++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/SERVER_SETUP.md b/SERVER_SETUP.md index c714734..80101b3 100644 --- a/SERVER_SETUP.md +++ b/SERVER_SETUP.md @@ -47,7 +47,9 @@ docker-compose up -d Windmill上で「登録されたワークフローをGitに保存する」機能を有効にする手順です。 ### 4-1. ワークフロー定義の取り込み(初回のみ) -サーバー上のリポジトリにあるワークフロー定義を、Windmillのデータベースに取り込みます。 + +**重要**: リポジトリ構成上、`wmill.yaml` は `workflows` ディレクトリ内にあります。 +Windmillコンテナはデフォルトでルートの `/workspace` を見ていますが、実際のデータは `/workspace/workflows` にあるため、同期時にパスを指定する必要があります。 ```bash # Windmillサーバーコンテナに入り、wmillコマンドを実行 @@ -55,6 +57,9 @@ docker exec -it windmill_server /bin/bash # コンテナ内で実行 export WM_TOKEN="<ステップ5で取得するトークン>" # まだ無ければGUIで作成してから + +# 初回同期(workflowsディレクトリを指定して同期) +cd /workspace/workflows wmill sync push --workspace admins --deploy --yes exit ``` diff --git a/workflows/u/antigravity/git_sync__flow/a.sh b/workflows/u/antigravity/git_sync__flow/a.sh index 9464fb4..ced16cc 100644 --- a/workflows/u/antigravity/git_sync__flow/a.sh +++ b/workflows/u/antigravity/git_sync__flow/a.sh @@ -9,8 +9,10 @@ NC='\033[0m' # No Color echo -e "${GREEN}=== Windmill Workflow Git Sync ===${NC}" -# 作業ディレクトリ(リポジトリルート) -cd /workspace +# リポジトリルート(コンテナ内: docker-compose.ymlの .:/workspace マウント) +REPO_ROOT="/workspace" +# wmill.yamlがあるディレクトリ(Windmill CLIはここで実行する) +WMILL_DIR="${REPO_ROOT}/workflows" # Windmill CLIのセットアップ if ! command -v wmill &> /dev/null; then @@ -29,15 +31,17 @@ fi : "${WM_WORKSPACE:=admins}" # Git設定(コンテナ内での一時設定) -git config --global --add safe.directory /workspace +git config --global --add safe.directory "$REPO_ROOT" git config --global user.email "bot@keinafarm.net" git config --global user.name "Windmill Bot" -# 1. Windmill(DB) -> Local Disk (Git Repo) +# 1. Windmill(DB) -> Local Disk(wmill.yamlがあるディレクトリで実行) echo -e "${YELLOW}Pulling from Windmill...${NC}" +cd "$WMILL_DIR" wmill sync pull --token "$WM_TOKEN" --base-url "$WM_BASE_URL" --workspace "$WM_WORKSPACE" --skip-variables --skip-secrets --skip-resources --yes || exit 1 -# 2. Local Disk -> Git Remote (Gitea) +# 2. Local Disk -> Git Remote(Gitリポジトリルートに戻ってgit操作) +cd "$REPO_ROOT" if [[ -n $(git status --porcelain) ]]; then echo -e "${YELLOW}Changes detected, committing to Git...${NC}"