Discourseはdocker上で動きます。
Discourseをインストールすると/var/discourseディレクトリの下に各ファイルが配置されます。その中に“launcher”コマンドがあり、これでDiscourse用に作成したdockerイメージのstartやstop、restartができるようになります。
launcherの引数で“enter”を選択すると、dockerイメージにログインすることができます。Discourceのdockerイメージがappだとすると、/var/dockerディレクトリで
./launcher enter app
を実行すると、appと言うdockerイメージにログイン出来ます。
dockerイメージはUbuntu的であり、apt-getコマンド等でパッケージをインストールすることができます。ホストOSとは独立していますので、dockerイメージ上のみで使うパッケージを独自にインストールして使うことができます。
3.3.0.beta1-devから3.3.0.beta3-devにアップデートするときに、コマンドラインで
# cd /var/discourse # git pull # ./laucher rebuild app
を実行しろと言われた。その際に“git pull”に失敗した。そのときのエラーメッセージに書かれたヒントが
----------------------------------------------------------------------------------- hint: You have divergent branches and need to specify how to reconcile them. hint: You can do so by running one of the following commands sometime before hint: your next pull: hint: hint: git config pull.rebase false # merge hint: git config pull.rebase true # rebase hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --rebase, --no-rebase, hint: or --ff-only on the command line to override the configured default per hint: invocation. -----------------------------------------------------------------------------------
である。そこで
# git config pull.rebase false
を実行後に
# git pull
を再実行したところ、
----------------------------------------------------------------------------------- error: Your local changes to the following files would be overwritten by merge: templates/web.template.yml Please commit your changes or stash them before you merge. ------------------------------------------------------------------------------------
と表示された。確かに“templates/web.template.yml”は書き換えている。そこで
# git commit -m 'Merge the modified parts.' ./templates/web.template.yml
を実行してエラーが出ないことを確認後に
# git pull
を実行したところ、問題なく終了した。
最後に
# ./laucher rebuild app
を実行して無事3.3.0.beta3-devにアップデートした。