Skip to content

build: bake NEXT_PUBLIC_SF_SITE_URL into frontend image via ARG/build-args - #25

Merged
Cho-Geer merged 3 commits into
developfrom
feat/sf-site-url-build-arg
Sep 22, 2026
Merged

Cho-Geer merged 3 commits into
developfrom
feat/sf-site-url-build-arg

Conversation

@Cho-Geer

Copy link
Copy Markdown
Owner

背景

NEXT_PUBLIC_* は Next.js の仕様上、ビルド時にクライアントバンドルへ静的埋め込みされる。
CI(frontend-image.yml)には変数の供給経路がなく(Dockerfile に ARG なし / build-args なし / .dockerignore が .env* を除外)、
実行時の env_file 注入は既に配信済みのブラウザ JS に効かない。
その結果、管理画面の「Salesforce 管理ワークベンチ」ボタンの有効条件
isEnabled = mappingActive === true && !!sfSiteUrl(SalesforceWorkbenchEntry.tsx:29)の後半が
常に undefined となり、DB・API・env がすべて正常でもボタンが無効のままだった。

変更内容

  1. Dockerfile: builder ステージ(npm run build の前)に ARG NEXT_PUBLIC_SF_SITE_URL + ENV を追加
  2. frontend-image.yml: docker/build-push-action に build-args を追加(値はリポジトリ変数 vars.NEXT_PUBLIC_SF_SITE_URL。公開 URL のため secret ではなく variable を使用)
  3. .gitattributes: 新規追加(テキストは LF 統一・画像/フォントは binary 指定)+ LICENSE の EOL 正規化(内容の変更なし)

動作要件

  • リポジトリ変数 NEXT_PUBLIC_SF_SITE_URL が設定済みであること(設定済み・確認済み)

マージ後の確認手順(booking-deploy 側)

  • docker compose -f compose/docker-compose.dev.yml --env-file compose/dev.compose.env pull frontend
  • up -d --force-recreate frontend(タグは同じ develop でも digest が新しくなる)
  • docker exec booking-frontend-dev sh -c 'grep -rc "my.site.com" /app/.next/static/chunks/ | grep -v ":0"' で 1 件以上ヒット
  • 管理画面を強制リロードし、Salesforce 管理ワークベンチ ボタンが有効化されること

注意・今後の課題

  • NEXT_PUBLIC_* はビルド時焼き込みのため、URL 変更時はイメージ再ビルドが必要(dev/prod で別イメージになる)
  • NEXT_PUBLIC_API_URL も同根の未焼き込み(現在は localhost fallback で偶然動作)。別 PR で対応予定

TraeAI added 2 commits September 23, 2026 00:52
- * text=auto eol=lf: all text files stored & checked out as LF
- common binary patterns marked binary (no EOL conversion)
- LICENSE blob renormalized CRLF->LF (EOL-only, no content change)
@Cho-Geer Cho-Geer self-assigned this Sep 22, 2026
@Cho-Geer Cho-Geer added bug Something isn't working CI/CD labels Sep 22, 2026
@Cho-Geer
Cho-Geer merged commit 27bb0b4 into develop Sep 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants