docker-compose で建てた CodiMD(HackMD) を 1.3.1 から 2.0.1 に更新する
以前の記事の最新版です。
更新時に注意するバージョンについて次に挙げるページで言及されていますが、1.1.0 以降は特に表立った手順は必要ないようです。
前回の記事の後追いなので、詳細は省略して残します。
手順
PosgreSQL データのバックアップ
不要ですが念のため。
$ cd docker-hackmd
$ sudo docker-compose exec database pg_dump hackmd -U hackmd > backup.sql
コンテナ削除
$ sudo docker-compose down
Stopping docker-hackmd_app_1 ... done
Stopping docker-hackmd_database_1 ... done
Removing docker-hackmd_app_1 ... done
Removing docker-hackmd_database_1 ... done
Removing network docker-hackmd_backend
docker-compose.yml を変更
イメージの指定を 2.0.1 に変更します。
app:
下の image: hackmdio/hackmd:1.2.0
を image: hackmdio/hackmd:2.0.1
に書き換えます。
新しいイメージの取得
$ sudo docker-compose pull
Pulling database ... done
Pulling app ... done
コンテナ作成
$ sudo docker-compose up -d
Creating network "docker-hackmd_backend" with the default driver
Creating docker-hackmd_database_1 ... done
Creating docker-hackmd_app_1 ... done
失敗
一見うまくいっているように見えていますが、appのコンテナが落ちています。
$ sudo docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
docker-hackmd_app_1 /home/hackmd/app/docker-en Restarting
...
docker-hackmd_database_1 docker-entrypoint.sh postgres Up 5432/tcp
原因調査
$ sudo docker logs docker-hackmd_app_1
Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!Error: value of env: CMD_DB_URL is empty!
環境変数が一つだけ変更されていました。
HMD_DB_URL
を CMD_DB_URL
に変更すればOKです。
コンテナ再生成
$ sudo docker-compose down
Stopping docker-hackmd_app_1 ... done
Stopping docker-hackmd_database_1 ... done
Removing docker-hackmd_app_1 ... done
Removing docker-hackmd_database_1 ... done
Removing network docker-hackmd_backend
$ sudo docker-compose up -d
Creating network "docker-hackmd_backend" with the default driver
Creating docker-hackmd_database_1 ... done
Creating docker-hackmd_app_1 ... done
$ sudo docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------
docker-hackmd_app_1 /home/hackmd/app/docke Up 0.0.0.0:3000->3000/tcp
r-en ...
docker- docker-entrypoint.sh Up 5432/tcp
hackmd_database_1 postgres
これで元通り問題なく使えました。