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

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

ただいまの
回答率

90.33%

  • WordPress

    7702questions

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

  • Ubuntu

    1561questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • Docker

    811questions

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

UbuntuでDockerを使ったWordPress環境を作りたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,387

KugaNaoyuki

score 22

デスクトップUbuntuでWordPressの開発環境を作ろうと思っています。
見様見真似でDockerを使ってみようと思ったのですが

curl: (7) Failed to connect to localhost port 8000: 接続を拒否されました

と接続できずに困っています。ここからどう進めばいいのでしょうか?

Docker-compose.yml

version: "2"
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: db:3306
    env_file: .env
 db:
   image: mysql:latest
   env_file: .env
   volumes:
     - db-data:/var/lib/mysql

~/deb-wordpress以下にこのファイルをおいて

$sudo docker-compose up -d

をしています。

環境

Ubuntu16.04
Docker version 1.12.6, build 78d1802
docker-compose version 1.15.0, build e12f3b

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • xenbeat

    2017/08/26 11:05

    デスクトップUbuntuはVM等で構築した仮想環境ですか?

    キャンセル

  • KugaNaoyuki

    2017/08/26 19:53

    いえ、仮想環境では実行せず単独で動いています。

    キャンセル

回答 1

checkベストアンサー

+1

動作確認してみたので参考にどうぞ。

docker-compose.yml作成して実行

$ docker-compose up -d
ERROR: yaml.parser.ParserError: while parsing a block mapping
  in "./docker-compose.yml", line 1, column 1
expected <block end>, but found '<block mapping start>'
  in "./docker-compose.yml", line 13, column 2

字下げがおかしいので修正して実行

--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -10,8 +10,8 @@ services:
     environment:
       WORDPRESS_DB_HOST: db:3306
     env_file: .env
- db:
-   image: mysql:latest
-   env_file: .env
-   volumes:
-     - db-data:/var/lib/mysql
+  db:
+    image: mysql:latest
+    env_file: .env
+    volumes:
+      - db-data:/var/lib/mysql
$ docker-compose up -d
ERROR: Couldn't find env file: /home/takamatu/git/x/.env

.envの空ファイル作成して実行

$ touch .env
$ docker-compose up -d
ERROR: Named volume "db-data:/var/lib/mysql:rw" is used in service "db" but no declaration was found in the volumes section.

カレントディレクトのPATH指定修正して実行

--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -14,4 +14,4 @@ services:
     image: mysql:latest
     env_file: .env
     volumes:
-      - db-data:/var/lib/mysql
+      - ./db-data:/var/lib/mysql
$ docker-compose up -d
Creating network "x_default" with the default driver
Creating x_db_1
Creating x_wordpress_1
$ docker-compose logs
Attaching to x_wordpress_1, x_db_1
wordpress_1  | WordPress not found in /var/www/html - copying now...
wordpress_1  | Complete! WordPress has been successfully copied to /var/www/html
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
wordpress_1  |
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
wordpress_1  | Warning: mysqli::mysqli(): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in - on line 22
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) php_network_getaddresses: getaddrinfo failed: Name or service not known
db_1         | error: database is uninitialized and password option is not specified
wordpress_1  |
db_1         |   You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD

≪省略≫

MySQL用の環境変数設定して再実行

$ cat <<EOS > .env
MYSQL_ALLOW_EMPTY_PASSWORD=yes
EOS
$ docker-compose down
$ sudo rm -rf db-data
$ docker-compose up -d
Creating network "x_default" with the default driver
Creating x_db_1
Creating x_wordpress_1
$ docker-compose logs
Attaching to x_wordpress_1, x_db_1
wordpress_1  | WordPress not found in /var/www/html - copying now...
wordpress_1  | Complete! WordPress has been successfully copied to /var/www/html
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) Connection refused
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) Connection refused
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) Connection refused
wordpress_1  | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.24.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1  | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.24.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1  | [Sat Aug 26 07:33:07.372698 2017] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) PHP/5.6.31 configured -- resuming normal operations
wordpress_1  | [Sat Aug 26 07:33:07.372732 2017] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
db_1         | Initializing database
db_1         | 2017-08-26T07:32:56.726287Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1         | 2017-08-26T07:32:57.279334Z 0 [Warning] InnoDB: New log files created, LSN=45790
db_1         | 2017-08-26T07:32:57.368996Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
db_1         | 2017-08-26T07:32:57.443416Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: c7df0322-8a30-11e7-b1c3-0242ac180002.
db_1         | 2017-08-26T07:32:57.445561Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
db_1         | 2017-08-26T07:32:57.445883Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
db_1         | 2017-08-26T07:32:58.678766Z 1 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
db_1         | 2017-08-26T07:32:58.678799Z 1 [Warning] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1         | 2017-08-26T07:32:58.678807Z 1 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1         | 2017-08-26T07:32:58.678820Z 1 [Warning] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1         | 2017-08-26T07:32:58.678824Z 1 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1         | 2017-08-26T07:32:58.678832Z 1 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1         | 2017-08-26T07:32:58.678868Z 1 [Warning] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
db_1         | 2017-08-26T07:32:58.678881Z 1 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
db_1         | Database initialized
db_1         | Initializing certificates

≪省略≫

db_1         | 2017-08-26T07:33:06.384817Z 0 [Note] Event Scheduler: Loaded 0 events
db_1         | 2017-08-26T07:33:06.385121Z 0 [Note] mysqld: ready for connections.
db_1         | Version: '5.7.19'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
db_1         | 2017-08-26T07:33:06.385132Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check.
db_1         | 2017-08-26T07:33:06.385135Z 0 [Note] Beginning of list of non-natively partitioned tables
db_1         | 2017-08-26T07:33:06.406561Z 0 [Note] End of list of non-natively partitioned tables
$ docker-compose logs wordpress
Attaching to x_wordpress_1
wordpress_1  | WordPress not found in /var/www/html - copying now...
wordpress_1  | Complete! WordPress has been successfully copied to /var/www/html
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) Connection refused
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) Connection refused
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22
wordpress_1  |
wordpress_1  | Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 22
wordpress_1  |
wordpress_1  | MySQL Connection Error: (2002) Connection refused
wordpress_1  | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.24.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1  | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.24.0.3. Set the 'ServerName' directive globally to suppress this message
wordpress_1  | [Sat Aug 26 07:33:07.372698 2017] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) PHP/5.6.31 configured -- resuming normal operations
wordpress_1  | [Sat Aug 26 07:33:07.372732 2017] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

http://localhost:8000

wordpress初期画面

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/08/26 20:52

    ありがとうございます。
    - - db-data:/var/lib/mysql
    + - ./db-data:/var/lib/mysql
    これを行って指示通りに進んだところ、うまく起動しました。

    キャンセル

  • 2017/08/27 02:10

    .envについては書き漏れでした、すいません。

    キャンセル

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

  • ただいまの回答率 90.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • WordPress

    7702questions

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

  • Ubuntu

    1561questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • Docker

    811questions

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