Bad Todoのバージョンアップは以下の手順で行います。
- バックアップの取得
- 既存のコンテナやイメージを削除
- 新バージョンを取得
- 新バージョンでコンテナ起動
Bad Todoには重要な情報を保存することは推奨されませんが、実習の過程でソースコード等を編集していて、その内容を保存したい場合は、あらかじめバックアップを取得することをお勧めします。
まず、既存のDockerコンテナとイメージを削除します(削除しない方法もありますが、削除した方が間違う要素が少ないと思います)。 すべてのコンテナ・イメージ・ボリューム等を削除するには以下のコマンドが簡単です。
$ cd badtodo # Bad Todoのインストールフォルダに移動
$ docker compose down --rmi all
この方法だと、データベース(MySQL)のデータは保存されます。 データベースの内容も含めて新規にやり直したい場合は、以下のコマンドによりボリュームごと削除してください。
$ cd badtodo # Bad Todoのインストールフォルダに移動
$ docker compose down --rmi all --volumes
もしもBad Todoのフォルダを消してしまったがコンテナとイメージは残っている場合は、任意のフォルダで以下を実行してください。-p badtodo はプロジェクト名を示しており、デフォルトはbadtodoですが、変更している場合は適宜-pの指定を変更してください。また、オプション--volumesを指定した場合はMySQLのデータも削除されます。
$ docker compose -p badtodo down --rmi all --volumes
もしもBad Todoのフォルダとコンテナは消したが、イメージは残っている場合は、任意のフォルダで以下を実行してください。
$ docker rmi badtodo-apache:latest
$ docker rmi badtodo-db:latest
$ docker rmi badtodo-mail:latest
$ docker rmi badtodo-nginx:latest
$ docker volume rm badtodo-mysql # 任意: データベースを初期化したい場合のみ
元々git cloneによりインストールした場合は、以下のコマンドで新バージョンを取得できます。
$ git pull
この際、既にBad Todoにローカルで修正などをしていた場合は、git pull時にコンフリクトのエラーになります。この場合、以下で強制的にプルする(リモートの内容をローカルに上書きする)方法があります。
$ git fetch origin main
$ git reset --hard origin/main
これらの方法だと、Bad Todoで登録したTodoや添付ファイル、アイコン等は保存されます。一方、ソースコードの修正などは、新バージョンで上書きされます。
もしもよく分からない場合は、既存のbadtodoフォルダを削除するかフォルダ名を変更して、新規にgit cloneしてください(インストール方法)を参照)。
ZIPファイルをダウンロードした場合は、badtodoフォルダをすべて削除するかフォルダ名を変更した後に、新しいバージョンのZIPファイルを展開(解凍)してください。
新バージョンでコンテナをビルドして起動するには、以下のコマンドを実行してください。
$ docker compose up -d
以上でバージョンアップは終わりです。