最近では、Webサーバーなどで公開しているアプリケーションでプラグインのバージョンアップなどで不具合が起こることもあり、ローカル環境で十分テストしてから実行することが望まれます。
こういう場合、各種のOSで仮想環境として動作実績のあるDockerが有効です。
人口知能の画像認識プログラムを入手して遊んでいた時、”Docker Toolbox on Windows”が必要でインストールしていたのですが、最近その画像認識プログラムがうまく働かなくなり、いろいろ調べていたら、
・Docker Toolbox on Windowsは、最近供給されなくなった。
・PCのハード条件によっては、Windows10 Homeでも、Dockerが動作する。
という事で、Dockerをインストール(インストール方法は後述)したところ、前述の画像認識プログラムが、無事動作しました。
Dockerでは、Wordpressも比較的簡単に導入・動作するようであり、レンタルサーバー(お名前.com SD 11)上で動作・公開しているホームページの内容更新を考えていたので、早速取り組んでみました。
Docker利用のメリット・デメリットなどは、
簡単便利!DockerでWordPressの開発環境を作ろう。方法&メリット紹介
https://goworkship.com/magazine/wordpress-docker/
Docker-Wordpress
導入については、数多くの記事がありましたが、下記の物が分かりやすく、利用しました。
① Docker Desktop(Docker for Windows)のインストール
参考記事:
Windows HomeにDocker Desktop をインストール
https://docs.docker.jp/docker-for-windows/install-windows-home.html
Docker Hubから、Docker Desktop Installer.exe を入手し実行すれば簡単にインストールできます。
② Docker-Wordpressの入手と実行
参考記事:
カゴヤのサーバー研究室 DockerでWordPressテスト環境を構築
https://www.kagoya.jp/howto/wordpress/wordpress-docker/
1.Dockerを起動
2.上記参考記事の”個別にインストールする方法”の項通り実行…コマンドプロンプトから実行
docker pull mysql:5.7.25
docker pull wordpress
docker run -–name mysql5.7.25 -e MYSQL_ROOT_PASSWORD=xxxxxxxx -d mysql:5.7.25
docker run –-name wordpress –link mysql5.7.25:mysql -d -p 8080:80 wordpress
*記事の通りではコマンドが正しく動作せず、docker –helpなどで調べた。
nameでの指定は、-name string でなく、–name string
3.ブラウザで、http://localhost:8080にアクセス。
Wordpressのlogin画面が表示された。
Docker-Wordpressの再構築1
DockerでWordpressが動作するようになり、公開しているホームページの再編集案の検討・検証が開始できるようになった。
ところが数日後、検証用Wordpressにアクセスできなくなってしまった。
WordPressのログイン画面にアクセスできないばかりでなく、作成した検証用サイトの画面にもアクセスできず。
WordPressの再インストール画面(?)では、”インストール済み。データベース削除後再インストール”の表示。
状況が全く理解できない。原因も不明。
(Wordpress実行時、固定ページのパーマネントを変更しようとしてうまくいかず、同じような内容の固定ページをもう一つ作って、サイトの表示メニューからはその新しい頁が表示できず、ブラウザのアクセス先を変えて表示させ……いずれにしてもWordpressの扱いがまずかったようで、Wordpress用のデータベースデータを壊してしまったような気がする)
思い切って、WordpressとMySQLのコンテナを再度作成するところから再スタートさせようとしたが、これが地獄だった。
数日間、思い悩んだ。
今思い返して、整理してみると、
① 2つのコンテナの作成が全くうまくいかなかった。
Wordpressの操作に不慣れだった、内容が理解できてなかったこともあるが、
・コマンドプロンプトからのコマンドでコンテナができない。それも2つの内一方だけ。
(最初にうまくいった時と動作が違う……?)
・Docker-DesktopのGUI画面で、イメージからコンテナを作成する方法が解らなかった。
② コンテナをやっと作成し、runさせたが、
・ブラウザでアクセス不可
・データベースの設定を入力する画面につながったが、パスワード等入力しても、まちがった設定だとの返事
➂ data-compose.ymlを作成して起動する方法を試みる。
②と同じくデータベース設定画面から先へ進めず。
参考記事:
カゴヤのサーバー研究室 DockerでWordPressテスト環境を構築
https://www.kagoya.jp/howto/wordpress/wordpress-docker/
④ Docker Desktopでイメージからコンテナを作成する際、オプション指定ができる。
portの設定とdata-compose.ymlの保存先ディレクトリを設定した。
②と同じくデータベース設定画面から先へ進めず。
⑤ 作成したコンテナの中味などを調査し、docker run の際に、linkでなくnetを使った。
データベースに接続できないというエラー。(Error establishing a database conekution)
参考記事:
Qiitaの記事 @cnloniさんの記事 ”DockerでWordPress環境を用意するのが簡単じゃなかった話” データベースに接続できないというエラー。(Error establishing a database conekution)
というわけで、すっかりお手上げです。
Docker-Wordpressの再構築2
諦めて1,2日放っていたのですが、今一度試みようと下記の記事を参考に実行してみました。
参考記事:
Qiitaの記事 @tomokei5634さんの記事 ”初心者|Docker-ComposeでWordPressとMySQLとphpMyAdminのローカル環境の構築”
見事成功です。Docker-Wordpressが動き始めました。
docker-compose.ymlを使う方法なので、ここ数日の経過の中でも成功したはずです。
なぜ今回うまくいったのかわかりませんが、
yml fileの中の指定項目、半角スペースのインデントが重要だとの指摘も記事内にあり、その辺の影響かとも思います。
が、いずれにしても良かった!Dockerについても少し勉強させてもらいました。