CanvasのSandbox
2022-03-24(木)
LMSのCanvasのSandbox作成。やることは簡単でスクリプト一発の筈だったのだが結構面倒だった。 gitとかの基本的なツールはあって当たり前なので省略するが
- この手順はmacOS (Monterey)
- doryが必要(Webサービスをlocal動作させる際,偽のFQDNをいい感じにmapしてくれるらしい)
- docker諸々必要
- mutagenが必要(dockerのバインドマウントを高速化)
あたりが条件
doryを入れる
brew install dory
Canvasのソースを拾ってくる
git clone https://github.com/instructure/canvas-lms.git
cd canvas-lms
依存アプリを入れて環境構築
ここの通りにDocker環境のセットアップを実行すると足りないものを指摘してくれるのだが,先に依存するアプリも入れてしまう
brew install mutagen-io/mutagen/mutagen
brew install mutagen-io/mutagen/mutagen-compose
./script/docker_dev_setup.sh --mutagen
Docker Desktopが無いと言われる
で,Docker Desktopをインストールしてあるのに無いと言われてコケるので script/common/utils/docker_desktop_setup.sh
の最後の
function check_for_docker_desktop {
if ! mdfind "kMDItemKind == 'Application'" |grep -qE 'Docker.app|Docker\ Desktop.app'; then
echo " Docker Desktop is not installed!"
echo " Refer to https://docs.docker.com/docker-for-mac/install/ for help installing."
echo " Once Docker Desktop is installed rerun this script."
exit 1
fi
}
のexit 1を消す泥縄で対応。(エラーになっても終了させない)
またコケるが再度実行すると通る
その後コケるが,docker_dev_setup.logを見ても↓のような感じで原因不明だが,もう一度実行すると何故かエラーなく通る
Gem files will remain installed in /home/docker/.gem/gems/ruby-debug-ide-0.7.2
for inspection.
Results logged to
/home/docker/.gem/extensions/x86_64-linux/2.7.0/ruby-debug-ide-0.7.2/gem_make.out
An error occurred while installing ruby-debug-ide (0.7.2), and Bundler cannot
continue.
Make sure that `gem install ruby-debug-ide -v '0.7.2' --source
'https://rubygems.org/'` succeeds before bundling.
In Gemfile:
ruby-debug-ide
/o\ Something went wrong. Check /xxxxxxxxx/sandbox/canvas-lms/log/docker_dev_setup.log for details.
ということでもう一度実行
./script/docker_dev_setup.sh --mutagen
今度はセットアップが完了する。
mutagen-compose up
mutagen-composeでupする(ちなみにupで開始だからdownとやるとcontainersが全部消える)。
mutagen-compose up
で,暫く待ってるとwebpack_1
からのログが終わってjobs_1
からのログが流れるので,ブラウザで http://canvas.dockerを開くとCanvasのログイン画面になれば順調。
Canvasのアカウント作成
この状態だとアカウントが無い状態なのでcontainerの中のrailsでアカウントを作成する。
docker ps
で確認してIMAGEがcanvas-lms_web
のNAMESを見る(たぶんcanvas-lms_web_1)。
docker exec -u 0 -it canvas-lms_web_1 /bin/bash
でコンテナに入ると
root@xxxxxxxxxxx:/usr/src/app#
のようなプロンプトになるので
rails db:initial_setup
を実行すると色々聞かれる。
※アカウント名(the account name)なのだが,特殊な用語で大学-学部-学科のようなツリーを考えたときの大学に相当する
1: development:public
What email address will the site administrator account use? > [ログインIDになるメールアドレスを入力]
Please confirm > [ログインIDになるメールアドレスを入力]
What password will the site administrator use? > [パスワードを入力]
Please confirm > [パスワードを入力]
What do you want users to see as the account name? This should probably be the name of your organization. > [他のユーザーから見たアカウント名]
To help our developers better serve you, Instructure would like to collect some usage data about your Canvas installation. You can change this setting at any time.:
1. Opt in
2. Only send anonymized data
3. Opt out completely
> [開発元に情報を送るかどうかなので2の匿名化か3の拒否が無難]
Thank you for participating in anonymous usage collection.
You can change this feature at any time by running the rake task 'rake db:configure_statistics_collection'
........................................................................................
Notifications Loaded
No notification files found for Assignment Publishing Reminder
No notification files found for Assignment Grading Reminder
No notification files found for Assignment Due Date Reminder
No notification files found for Rubric Assessment Invitation
No notification files found for Migration Export Ready
No notification files found for Migration Import Finished
No notification files found for Migration Import Failed
Initial data loaded
で完了。doryのおかげでhttp://canvas.dockerでログインできるようになってる。