質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

1835閲覧

Docker + WordPressで複数のサイトを立ち上げる時の設定・リダイレクト回避

Vatra

総合スコア0

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/12/25 07:45

編集2020/12/25 23:40

いつもアドバイスをいただきありがとうございます。

以下の記事を含め、Web上の情報を収集して対応していますが、どうしても解決できない事象が発生しています。
https://teratail.com/questions/251378

問題

ポートを振り分けて2つのWordPressサイトを起動させるが、アクセスするとどちらか一方に自動的にリダイレクトしてしまう

ファイル階層

下記のように、リバースプロキシの設定があるdocker-compose.ymlの階層の直下にそれぞれdocker-test、docker-test2ディレクトリを作成し、それぞれのディレクトリ直下に各サイト設定用のdocker-compose.ymlファイルが格納されています。

1.docker-compose.yml →リバースプロキシの設定等
2.├─docker-test/docker-compose.yml → WordPressサイト1の設定
3.├─docker-test2/docker-compose.yml → WordPressサイト2の設定

実現したいこと

リダイレクトされることなく、2つ(以上)のサイトを立ち上げても同時に閲覧できる状態でローカル開発環境を構築する

1.のdocker-compose.ymlの設定

yml

1version: "3" 2 3services: 4 proxy: 5 image: jwilder/nginx-proxy 6 container_name: proxy 7 ports: 8 - "80:80" 9 - "443:443" 10 volumes: 11 - /var/run/docker.sock:/tmp/docker.sock:ro 12 - ./certs:/etc/nginx/certs:ro 13 restart: always 14 logging: 15 options: 16 max-size: 5m 17 max-file: "10" 18 19networks: 20 default: 21 external: 22 name: shared 23

2.のdocker-compose.ymlの設定

version: "3" services: db: image: mysql:5.7 container_name: "mysql_test" volumes: - ./db/mysql:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root_pass_fB3uWvTS MYSQL_DATABASE: wordpress MYSQL_USER: user MYSQL_PASSWORD: user_pass_Ck6uTvrQ wordpress: image: wordpress:latest container_name: "test" volumes: - ./wp-content:/var/www/html/wp-content - ./php/php.ini:/usr/local/etc/php/conf.d/php.ini restart: always depends_on: - db ports: - 8003:80 environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: wordpress WORDPRESS_DB_USER: user WORDPRESS_DB_PASSWORD: user_pass_Ck6uTvrQ phpmyadmin: image: phpmyadmin/phpmyadmin:latest container_name: "phpmyadmin_test" restart: always depends_on: - db ports: - 8004:80 networks: default: external: name: shared

3.のdocker-compose.ymlの設定

yml

1version: "3" 2services: 3 db: 4 image: mysql:5.7 5 container_name: "mysql_test2" 6 volumes: 7 - ./db/mysql:/var/lib/mysql 8 restart: always 9 environment: 10 MYSQL_ROOT_PASSWORD: root_pass_fB3uWvTS 11 MYSQL_DATABASE: wordpress 12 MYSQL_USER: user 13 MYSQL_PASSWORD: user_pass_Ck6uTvrQ 14 15 wordpress: 16 image: wordpress:latest 17 container_name: "test2" 18 volumes: 19 - ./wp-content:/var/www/html/wp-content 20 - ./php/php.ini:/usr/local/etc/php/conf.d/php.ini 21 restart: always 22 depends_on: 23 - db 24 ports: 25 - 8005:80 26 environment: 27 WORDPRESS_DB_HOST: db:3306 28 WORDPRESS_DB_NAME: wordpress 29 WORDPRESS_DB_USER: user 30 WORDPRESS_DB_PASSWORD: user_pass_Ck6uTvrQ 31 32 phpmyadmin: 33 image: phpmyadmin/phpmyadmin:latest 34 container_name: "phpmyadmin_test2" 35 restart: always 36 depends_on: 37 - db 38 ports: 39 - 8006:80 40 41networks: 42 default: 43 external: 44 name: shared

試したこと

  • それぞれ別のブラウザでシークレットモードで立ち上げましたが、何回かリロードすると1のサイトと2のサイトがどちらも表示され不安定な状態です

補足情報(FW/ツールのバージョンなど)

  • macOS 10.15.7
  • Docker version 20.10.0, build 7287ab3

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2020/12/25 08:00

どれ、まずは確認の為に実在のURLを載せてみてください
t_obara

2020/12/25 08:51

何を持って振り分ける想定ですか?URLでしょうか? その場合、nginxで行うのであれば、それが記載されたconfファイルを提示してください。
Vatra

2020/12/25 23:39 編集

> hentaiman様 ご返信ありがとうございます!ローカルの開発環境構築なので、外部公開できるURLがございません。すみません。 > t_obara様 URLで振り分ける想定ですが、URLがhttp://localhost:8003/ ならtest、http://localhost:8005/ならtest2のサイトが表示される想定です。 リバースプロキシはnginxですが、nginxのconfにも設定が必要なんですね。 ちょっと検索して確認してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問