0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Canvas LMS 変更を本番バンドルへ反映する

Last updated at Posted at 2025-08-10

目的

  • Canvas OSS を docker-compose で動かしている環境で、TSX 変更を最短で本番バンドルへ反映する手順を共有します。

TL;DR

  • コマンド: docker compose exec web yarn webpack-production
  • 必要なら再起動: docker compose restart web
  • 反映確認: ブラウザをハードリロード(キャッシュ無効)

なぜこれで足りるか

  • Canvas のフロントは rspack(webpack) が public/dist に JS バンドルを生成。
  • TSX 変更のみなら JS の再ビルドだけで十分。CSS/i18n/brandable_css を触っていな
    い限り、canvas:compile_assets のフル実行は不要。
  • yarn webpack-production は最適化済み(本番用)バンドルを生成するため、本番表示でもそのまま反映されます。

前提

  • サービス名は web(標準の docker-compose)。
  • public/dist は docker volume で永続化されている(標準設定)。

手順

  • 本番バンドル再ビルド: docker compose exec web yarn webpack-production
  • 必要に応じて再起動: docker compose restart web
  • 確認: ブラウザをキャッシュ無効化でリロード

よくある疑問

  • フルビルドは必要?: CSS や i18n、brandable_css を更新したときのみ docker comp ose exec web bin/rails canvas:compile_assets を実行。
  • 開発バンドルで素早く確認したい: docker compose exec web bundle exec rake canv as:compile_assets_dev(URL に ?optimized_js=0 を付けて確認)。恒常反映は本番
    バンドルで。

トラブルシュート

  • 反映されない:
    • ブラウザキャッシュを無効化して再読込。
    • public/dist ボリュームが古い場合: docker volume ls | grep public_dist
      docker volume rm <プロジェクト名>_public_dist → 再ビルド。
  • メモリ不足や速度が厳しい:
    • ソースマップ省略: docker compose exec web bash -lc 'SKIP_SOURCEMAPS=1 yarn webpack-production'
  • 依存がズレて失敗:
    • docker compose exec web bash -lc 'yarn install --frozen-lockfile || yarn in stall --frozen-lockfile --network-concurrency 1' 実行後に再ビルド。

フルビルドが必要なケース

  • CSS 変更、translations/i18n の再生成、brandable_css の再生成が必要な場合。
  • その際は: docker compose exec web bin/rails canvas:compile_assets

この運用なら TSX 修正は「JS だけの再ビルド」で十分です。運用フローに合わせて、必
要なら上記のフルビルドへ切り替えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?