月: 2020年5月

  • docker-compose で建てた CodiMD(HackMD) を 1.3.1 から 2.0.1 に更新する

    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.0image: 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_URLCMD_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

    これで元通り問題なく使えました。