動機
dockerで立ち上げてたwordpressとMySQLのバージョンが古かったので、docker imageのバージョンをアップしました。
バージョン変更前と後は下記の通りです。
PHP 7.3 -> 8.0
MySQL 5.7 -> 8.0
docker compose
docker composeは下記の通りです。
①docker compose down
②# -> の所を書き換える
③docker compose build
④docker compose up -d
で更新できます。
結果として問題なく出来ましたが、一応検証してから変更しましたのでそれについて書きます。
version: "3.8"
services:
wp_db:
container_name: wp_db
image: mysql:5.7 # -> 8.0
volumes:
- ./wp_db:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root-pass
MYSQL_DATABASE: wordpress
MYSQL_USER: user
MYSQL_PASSWORD: pass
wordpress:
container_name: wordpress
depends_on:
- wp_db
image: wordpress:php7.3-apache # -> php8.0-apache
# 単体起動用
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: wp_db:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: pass
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wordpress/html:/var/www/html
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
検証
バージョン変更後にエラー発生ぐらいだといいのですが、データが破損しないか自信が無かったのでバックアップを取って検証してから行いました。
今回は2つバックアップをとりました。
① docker compose のファイルごと圧縮してバックアップをとります
② VPS のスナップショットを保存します
同じものを取るのでは無く、違う種類のを取った方がいいと思います。
検証は下記の手順で行いました。
・①で取ったバックアップをローカルで復元出来るか確認する
・PHPとMySQLを別々でバージョンの変更をする
・それぞれで問題なく動作するか確認する
・本番環境で変更する
不足などあるかもですが、とりあえずこれで無事更新できました。
以上です。