curl https://raw.githubusercontent.com/prime-strategy/kusanagi-docker/master/install.sh |bash
docker machine がインストールされていませんというエラーが出ますが、無視してokです
~/.kusanagi/bin/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 を カスタマイズしてみましょう。例えば 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:
Macで以下のコマンドを実行する
sudo ln -sf "$HOME/.docker/run/docker.sock" /var/run/docker.sock
docker-compose.yml の各コンテナの volumes に以下のコードを追加する
volumes:
- /var/run/docker.sock:/var/run/docker.sock
docker-compose.yml のhttpdの services の httpd に以下のコードを追加する
user: root
command: sh -c '/sbin/apk add docker; sh;'
tty: true
( コマンド実行後に終了してしまわないように sh を起動しています )
composer create-project laravel/laravel myapp