今回は、Amazon AWS上にdockerホストを構築してWordpressコンテナをdocker-composeで立ち上げてみました。移行作業中にオンプレミス環境からエクスポートしたデータベースをサテライトに手軽にお引越しできるDockerコンテナ WordPress CLI をめも。
朗報です。docker-composeで立ち上げたWordpressのデータベースのURLをコンテナベースでコマンドラインから検索、置換できるようです。オンプレミスからWordpressのお引越しができるコンテナの使い方をご紹介します。
WordPressデータベースのお引越し WP-CLIの使用方法
WP-CLIとは
dockerで提供されているCMS WordPressを操作できるユーティリティでコンテナイメージのwordpress:cli が本体です。
docker-compose.ymlにWP-CLIのdockerイメージを追加する
まず、docker-compose.yml にコンテナイメージを追加します。
当拙ブログ:WordPress docker-compose MySQL8 https-portal SSL対応
docker-compose.yml services:
・
・
wpcli: container_name: wpcli image: wordpress:cli-php7.4 working_dir: /var/www/html depends_on: - wordpress - mysql000ex1 volumes_from: - wordpress command: "--info" user: xfs environment: WORDPRESS_DB_HOST: mysql000ex1:3306 WORDPRESS_DB_NAME: wordpress000db WORDPRESS_DB_USER: wordpressuser WORDPRESS_DB_PASSWORD: wpuserpass
docker-compose up -d してコンテナ起動します。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 78f2fb722606 steveltn/https-portal:1 "/init" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp https-portal 9219bc52305e gusachan/wordpress:custom "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:49168->80/tcp, :::49168->80/tcp wordpress 0fccbf16d7de mysql:8 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql000ex1
今回はWordpressのインポート、エクスポート機能を使ってテキストデータを移行、dockerホストにアップロードした画像データをWordpressコンテナのルートディレクトリにコピーしました。
$ docker cp uploads/ wordpress:/var/www/html/wp-content/
WP-CLIを用いたURLの置換
続いてコマンドラインからwordpress:cli をイメージからコンテナ起動、URL置換コマンド wpcli search-replace を実行します。あらかじめ –dry-runオプションで試運転します。
$ docker-compose run --rm wpcli search-replace --dry-run 'https://www.stuffy.site/card' 'https://sanaru.info' --all-tables
最後に docker commit してイメージを保存します。
$ docker commit wordpress gusachan/wordpress:custom
画像URLが自サイトを参照することを確認してお引越し完了です。お疲れ様でした。
参考URL: WP-CLIのDocker公式イメージ「wordpress:cli」の使い方