@znz blog

ZnZ の memo のようなもの

dokku 0.3 系から 0.4 系へのアップグレード

| Comments

dokku 0.3.26 から dokku 0.4.1 へのアップグレードをしました。

検証環境

  • Ubuntu 14.04.3 LTS (trusty) amd64
  • docker 1.6.2 から 1.8.2
  • dokku 0.3.26 から 0.4.1
  • dokku-psql-single-container プラグイン 0.4.0

docker の apt レポジトリの変更

New Apt and Yum Repos に書いてあるように docker 1.8 からは新しいレポジトリにしか存在しなくなったので、 /etc/apt/sources.list.d/docker.list を書き換える必要がありました。

以下の手順で変更しました。

1
2
3
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudoedit /etc/apt/sources.list.d/docker.list
sudo apt-get update

docker.list は以下の内容に変更しました。

1
deb https://apt.dockerproject.org/repo ubuntu-trusty main

パッケージ名も lxc-docker で始まるものから docker-engine に変わっています。

dokku 0.3.26 ではプラグインの互換性への配慮から lxc-docker-1.6.2 にバージョンが固定されていましたが、制限が解除されています。

具体的には herokuish 0.0.1 が lxc-docker-1.6.2Pre-Depends していたのが、 herokuish 0.3.3 に上がって docker-engine への Pre-Depends に変わっています。

アップグレード

sshcommand の変更

sshcommand createdokku-psql-single-container プラグインが使っている /home/dokku/.psql-sc/dataowner が変わってしまう問題があるため、

1
sudoedit /usr/local/bin/sshcommand

1
chown -R $USER $USERHOME

1
2
chown $USER $USERHOME
chown -R $USER $USERHOME/.ssh*

に変更しています。

sshcommand パッケージが 0.0.1 から 0.1.0 に上がって変更が戻ってしまうので、 sshcommand だけ先にアップグレードして、再度変更しました。

パッケージのアップグレード

1
sudo apt-get dist-upgrade

でアップグレードしました。

dokkuherokuish のアップグレードの他に、 lxc-docker-1.6.2 が削除されて docker-engineplugn が新しくインストールされます。

初回インストールと同様に herokuish の postinst で時間がかかります。

不要なパッケージの削除

lxc-docker-1.6.2 の完全削除と (plugn パッケージに置き換えられた) pluginhook パッケージの削除をしました。

1
2
sudo apt-get purge lxc-docker*
sudo apt-get autoremove

プラグインの再インストール

psql-sc は移行措置で /var/lib/dokku/plugins/available/psql-sc に移動されているのですが、有効になっていない (/var/lib/dokku/plugins/enabled からのシンボリックリンクがない) ので、パスが違うこともあり、再度インストールして、古い方は消すことにしました。

1
2
sudo dokku plugin:install https://github.com/Flink/dokku-psql-single-container
sudo dokku plugin:uninstall psql-sc

プラグインのインストールやアンインストールは root 権限が必要なため、サーバー上で sudo dokku で実行する必要がありました。

PostgreSQL のプラグインとしては dokku postgres (beta) もありますが、まだ beta なのとデータ移行の問題があるため、当面は同じプラグインを使い続けることにしました。

再起動して反映

1
sudo reboot

で再起動して、問題なく動くことを確認しました。

Comments