wordpressをdocker-composeを使って構築しています。
起きている事象
色々な記事を見ながらdocker-compose.ymlを作成、初回のコンテナを立ち上げるところまでは上手くいき、ブラウザでページやダッシュボードへアクセスができるようになったのですが、一度コンテナを止めたりPC再起動したあとに再度docker-compose up -d
で立ち上げようとした時に上手くいかず困っています。
docker-compose up -d
で再起動した後docker-compose ps
で確認(どちらもUpになってる)
docker_test_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp docker_test_wp_1 docker-entrypoint.sh apach ... Up 0.0.0.0:1000->80/tcp
docker ps -a
で確認するとwordpressコンテナはRestartingになっている
wordpress:5.3-php7.3-apache … Restarting (2) docker_test_wp_1 mysql:5.7 … Up About a minute docker_test_db_1
再起動後にブラウザでアクセスしてみても「このサイトにアクセスできません」となってしまう
原因と考えられること
ホスト側の../wpディレクトリをコンテナの/var/www/htmlにマウントしているのですが、上記エラーとなったあとで一度../wpの中身を空にして再度実行するとwordperssコンテナによって../wpの中身が新しく再生成され今度は問題なく立ち上がります。なのでコンテナを再起動したときに../wpに必要なファイルを作ろうとしたが失敗しまい、結果としてエラーになっているのかなと推測しています。
実現したいこと
毎回コンテナ再起動時に../wpの中身を別のところに避難させ、コンテナ起動→生成された../wpの中身を削除→避難させたものを再格納...とすれば上手くいくのですが、だいぶ手間がかかってしまうので、コンテナを再起動したときもそういったファイルの移動を行わずに再起動前と同じ状態で立ち上がるようにしたいです。
試したこと
・docker-compose.ymlのrestart: alwaysをコメントアウト → 動作変わらず
環境
Windows10
Docker: version 19.03.13, build 4484c46d9d
docker-compose: version 1.27.4, build 40524192
wordpress: 5.3-php7.3-apache
mysql: 5.7
ディレクトリ構成
root
├_docker
│ ├ db_data
│ └ docker-compose.yml
└_wp ← (このディレクトリをwpコンテナの/var/www/htmlにマウントしている)
└hoge01
├ wp-admin
├ wp-content
├ wp-includes
│ ...
▼ docker-compose.yml
version: '3.3' services: test_wp: image: wordpress:5.3-php7.3-apache depends_on: - test_db ports: - "1000:80" restart: always environment: WORDPRESS_DB_HOST: test_db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress volumes: - ../wp:/var/www/html test_db: image: mysql:5.7 volumes: - ./db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress volumes: db_data:
基礎的な知識が不足しており大変恐縮ですがご教授いただけますと幸いです。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー