KUSANAGIはプライム・ストラテジー株式会社が開発している超高速LAMP, LEMP, WordPress環境です。 バーチャルドメインマネージャーとしても有用です。

Docker で KUSANAGI

● KUSANAGI Run on Docker のインストール

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

docker machine がインストールされていませんというエラーが出ますが、無視してokです

~/.kusanagi/bin/kusanagi-docker コマンドが使用できるようになります

● kusanagi-docker コマンドを使って(バーチャルドメインの作成)プロビジョン

~/.kusanagi/bin/kusanagi-docker provision --lamp --fqdn <ドメイン名> --dbname <DB名> --dbuser <ユーザー名> --dbpass <パスワード名> <プロファイル名>

● サイトにアクセスする

http://0.0.0.0/ にアクセスしてみて hello world! が返ってくると成功です

docker の kusanagi-nginx にログインする

下記のように、ユーザ名を指定して kusanagi ユーザにてログインします

docker exec -it --user=kusanagi mysite_httpd sh --login

● docker-compose.yml をカスタマイズする

docker-compose.yml を カスタマイズしてみましょう。例えば volumes を 相対パスに変更します。

version: '3'

networks:
  default:
    driver: bridge
    driver_opts:
      com.docker.network.driver.mtu: 9000

services:
  httpd:
    container_name: mysite_httpd
    image: primestrategy/kusanagi-nginx:1.23.4-r4
    restart: always
    env_file:
      - .kusanagi
      - .kusanagi.httpd
    volumes:
      - ./kusanagi:/home/kusanagi
      - ./letsencrypt:/etc/letsencrypt
      - ./well-known:/var/www/html/.well-known
    ports:
      - "80:8080"
      - "443:8443"
    extra_hosts:
      - "my-site.local:127.0.0.1"

  php:
    container_name: mysite_php
    image: primestrategy/kusanagi-php:8.2.4-r2
    restart: always
    env_file:
      - .kusanagi
      - .kusanagi.php
      - .kusanagi.mail
    network_mode: "service:httpd"
    volumes:
      - ./mysqld:/var/run/mysqld
      - ./kusanagi:/home/kusanagi

  db:
    container_name: mysite_db
    image: mariadb:10.6.12-focal
    restart: always
    user: "999:999"
    env_file:
      - .kusanagi.mysql
    network_mode: "service:httpd"
    volumes:
      - ./mysqld:/var/run/mysqld
      - ./mysql:/var/lib/mysql
 
volumes:
  kusanagi:
  database:

● httpd コンテナからphp , mysql の cli コマンドを実行できるようにする

・ /var/run/docker.sockを設定する

Macで以下のコマンドを実行する

sudo ln -sf "$HOME/.docker/run/docker.sock" /var/run/docker.sock

・ docker-compose.yml に設定を追加する

docker-compose.yml の各コンテナの volumes に以下のコードを追加する

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

docker-compose.yml のhttpdの serviceshttpd に以下のコードを追加する

    user: root
    command: sh -c '/sbin/apk add docker; sh;'
    tty: true

( コマンド実行後に終了してしまわないように sh を起動しています )

引用 : https://bit.ly/418XRoK

● Laravel を インストールしてみる

composer create-project laravel/laravel myapp
No.2316
04/11 18:32

edit