5
5

More than 3 years have passed since last update.

VultrでKUSANAGI Runs on Dockerが動くまで(その1)

Last updated at Posted at 2020-07-28

前回のおさらい

前回の記事『VultrにDocker環境を作成する』でDockerとDocker-Composeの環境を作りました。今回はDocker上で超高速Wordpress環境であるKUSANAGIを動かしてみたいと思います。

はじめに

VPC環境でKUSANAGI Runs on Docker(以下KUSANAGI RoD)を動かします。使用するVPCはVultrですが他のVPCでもきっと大丈夫です。Vultrの初期セットアップは前回の記事『VultrにDocker環境を作成する』を参照してください。

はまった点

KUSANAGI RoDのインストール方法をググるとKAGOYAの記事『第6回 KUSANAGI Runs on Docker を使ってみた』が出てくるのですが、KUSANAGI RoDのDockerコンテナを新しくしようとするとエラーでまくりで動きません(泣)

公式サイト眺めながらまともに動くようになるまでを記事にしました。
https://kusanagi.tokyo/cloud/kusanagi-runs-on-docker/

動作環境など

  • Ubuntu 20.04
  • docker 19.03.12
  • docker-compose 1.26.2

DockerとDocker-Composeのインストールはこちらの記事『VultrにDocker環境を作成する』を参照してください。

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

$ docker --version
Docker version 19.03.12, build 48a66213fe

$ docker-compose --version
docker-compose version 1.26.2, build eefe0d31

想定している構成

複数のドメインでWordpressを運用したいのでHTTP/HTTPSの振り分けにリバプロとしてDockerコンテナのhttps-portalを使います。
https-portalを使うと簡単に複数サイトの振り分け+Let's Encrypt環境を作ることができますしお勧めです。

/home
  └$USER
        ├https-portal ← リバプロサーバー(マルチサイト& Let’s Encrypt対応)
        │ └docker-compose.yml
        │ 
        ├kusanagi01 ← KUSANAGI Runs on Docker(WordPressサイト1つ目)
        │ └docker-compose.yml
        │
        └kusanagi02 ← KUSANAGI Runs on Docker(WordPressサイト2つ目)
          └docker-compose.yml

KUSANAGI RoDのインストール

KUSANAGI RoDのインストール前にKUSANAGIの公式サイトを眺めておきましょう。
以下のようにコマンドを実行すると、KUSANAGI RoDが$HOME/.kusanagi 以下にインストールされます。

$ curl https://raw.githubusercontent.com/prime-strategy/kusanagi-docker/master/install.sh |bash

インストールが終わったらkusanagiコマンドを実行できるよう.bashrcの最後にPATHを追加しておきます。
kusanagiというアカウントの場合は以下のような感じです。

$HOME/.bashrc
PATH=/home/kusanagi/.kusanagi/bin:$PATH

KUSANAGI RoDのプロビジョニング

早速プロビジョニング(KUSANAGI RoDの環境を作成)してみます。$HOMEディレクトリでkusanagi-dockerコマンドを実行します。最低限、以下の引数だけは指定しておいたほうがあとあと楽です。

オプション 環境変数 説明
--fqdn(必須) FQDN 作成するサイトのドメイン名を指定します
--wp (なし) WordPressの環境を構築します
--wplang ja WordPressの言語を一つだけ指定します
--admin-user ユーザ名 WordPressの管理者ユーザ名を指定します
--admin-pass パスワード WordPressの管理者パスワードを指定します
--admin-email メールアドレス WordPressの管理者メールアドレスを指定します
--wp-title タイトル WordPressのタイトルを指定します
--kusanagi-pass KUSANAGIパスワード WordPressでの更新で使用するkusanagiユーザのパスワードを指定します
--dbname DB名 接続するDB名を指定します
--dbuser DBユーザ名 接続するDBユーザ名を指定します
--dbpass DBパスワード 接続するDBパスワードを指定します
--http-port HTTPポート番号 ホストにポートフォワードするhttpポート番号を指定します
--tls-port HTTPSポート番号 ホストにポートフォワードするhttpsポート番号を指定します

$ kusanagi-docker provision --wp --wplang=ja --admin-user=ユーザ名 --admin-pass=パスワード
 --admin-email=メールアドレス --wp-title=タイトル --kusanagi-pass=KUSANAGIパス --dbname=DB名 --dbuser=DBユーザ名
 --dbpass=DBパスワード --http-port=8080 --tls-port=8443 --fqdn ドメイン名 インストールフォルダ名

Creating network "kusanagi01_default" with driver "bridge"
Creating volume "kusanagi01_kusanagi" with default driver
Creating volume "kusanagi01_database" with default driver
Creating kusanagi01_config ... done
Creating kusanagi01_httpd  ... done
Creating kusanagi01_db      ... done
Creating kusanagi01_ftp     ... done
Creating kusanagi01_certbot ... done
Creating kusanagi01_php     ... done
 Waiting MySQL init process..
Provision WordPress
Downloading WordPress 5.4.2 (en_US)...
Warning: Failed to create directory '/.wp-cli/cache/': mkdir(): Permission denied.
md5 hash verified: efcd1980afe80f873dd6b51ef622bf87
Success: WordPress downloaded.
Success: Generated 'wp-config.php' file.
sendmail: can't connect to remote host (127.0.0.1): Connection refused
Success: WordPress installed successfully.
Warning: Failed to create directory '/.wp-cli/cache/': mkdir(): Permission denied.
Downloading translation from https://downloads.wordpress.org/translation/core/5.4.2/ja.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the translation...
Translation updated successfully.
Language 'ja' installed.
Success: Installed 1 of 1 languages.
Warning: Failed to create directory '/.wp-cli/cache/': mkdir(): Permission denied.
Downloading translation from https://downloads.wordpress.org/translation/plugin/akismet/4.1.5/ja.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the translation...
Translation updated successfully.
Language 'ja' for 'Akismet Anti-Spam' installed.
Warning: Language 'ja' not available.
Language 'ja' for 'Hello Dolly' not installed.
+---------+--------+---------------+
| name    | locale | status        |
+---------+--------+---------------+
| akismet | ja     | installed     |
| hello   | ja     | not available |
+---------+--------+---------------+
Success: Installed 1 of 2 languages (1 skipped).
Warning: Failed to create directory '/.wp-cli/cache/': mkdir(): Permission denied.
Downloading translation from https://downloads.wordpress.org/translation/theme/twentynineteen/1.5/ja.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the translation...
Translation updated successfully.
Language 'ja' for 'Twenty Nineteen' installed.
Downloading translation from https://downloads.wordpress.org/translation/theme/twentyseventeen/2.3/ja.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the translation...
Translation updated successfully.
Language 'ja' for 'Twenty Seventeen' installed.
Downloading translation from https://downloads.wordpress.org/translation/theme/twentytwenty/1.2/ja.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the translation...
Translation updated successfully.
Language 'ja' for 'Twenty Twenty' installed.
+-----------------+--------+-----------+
| name            | locale | status    |
+-----------------+--------+-----------+
| twentynineteen  | ja     | installed |
| twentyseventeen | ja     | installed |
| twentytwenty    | ja     | installed |
+-----------------+--------+-----------+
Success: Installed 3 of 3 languages.
Success: Language activated.

INFO: Done.


$ ls -al $HOME/kusanagi01
total 64
drwxrwxr-x 7 kusanagi kusanagi 4096 Jul 26 17:52 .
drwxr-xr-x 8 kusanagi kusanagi 4096 Jul 24 00:45 ..
drwxr-xr-x 6 kusanagi kusanagi 4096 Jul 18 22:56 contents
-rw-rw-r-- 1 kusanagi kusanagi 2273 Jul 24 00:41 docker-compose.yml
drwxrwxr-x 8 kusanagi kusanagi 4096 Jul 18 22:56 .git
-rw-rw-r-- 1 kusanagi kusanagi   14 Jul 18 22:56 .gitignore
-rw-rw-r-- 1 kusanagi kusanagi  258 Jul 24 00:13 .kusanagi
-rw-rw-r-- 1 kusanagi kusanagi  100 Jul 18 22:54 .kusanagi.db
-rw-rw-r-- 1 kusanagi kusanagi  572 Jul 18 22:56 .kusanagi.httpd
-rw-rw-r-- 1 kusanagi kusanagi   46 Jul 18 22:54 .kusanagi.mail
-rw-rw-r-- 1 kusanagi kusanagi  259 Jul 18 22:54 .kusanagi.mysql
-rw-rw-r-- 1 kusanagi kusanagi  143 Jul 18 22:54 .kusanagi.php
-rw-rw-r-- 1 kusanagi kusanagi  194 Jul 18 22:54 .kusanagi.wp
drwxrwxr-x 2 kusanagi kusanagi 4096 Jul 18 22:54 wpcli

Dockerコンテナが5個起動してることが確認できます。

$ docker-compose ps
       Name                     Command                 State                          Ports                     
-----------------------------------------------------------------------------------------------------------------
kusanagi01_certbot   certbot --version                Restarting                                                 
kusanagi01_config    docker-entrypoint.sh wp -- ...   Restarting                                                 
kusanagi01_db        docker-entrypoint.sh mysqld      Up                                                         
kusanagi01_ftp       /bin/sh -c /docker-entrypo ...   Up                                                         
kusanagi01_httpd     /docker-entrypoint.sh /usr ...   Up           0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp
kusanagi01_php       /usr/local/bin/docker-entr ...   Up   

上記手順ではWordpressのポートを意図的に80/TCP、443/TCPから変更しています。
ブラウザでWordpressのログイン画面にアクセスできたらOKです。
http://FQDN:8080/wp-login.php
https://FQDN:8443/wp-login.php

長くなってきたのでいったんおしまい。
『VultrでKUSANAGI Runs on Dockerが動くまで(その2)』に続きます。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5