🫎
爆速でLaravel12のローカル環境を作成する
はじめに
とにかく今すぐローカル環境が欲しい!という方へ!
(業務で使っちゃダメですよ)
環境
mac
Docker
3分クッキング開始(15分)
プロジェクト作成
mkdir laravel12-docker && cd laravel12-docker
docker-compose.yml を作成
version: '3.8'
services:
app:
build:
context: .
dockerfile: php-fpm/Dockerfile
container_name: laravel_app
working_dir: /var/www
volumes:
- ./src:/var/www
networks:
- laravel
web:
image: nginx:latest
container_name: laravel_nginx
ports:
- "8000:80"
volumes:
- ./src:/var/www
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- app
networks:
- laravel
db:
image: mysql:8.0
container_name: laravel_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: local
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
networks:
- laravel
phpmyadmin:
image: phpmyadmin:latest
container_name: laravel_phpmyadmin
restart: unless-stopped
ports:
- "8080:80"
environment:
PMA_HOST: db
depends_on:
- db
networks:
- laravel
volumes:
db_data:
networks:
laravel:
Nginxの設定を作成
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
.envの設定
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=local
DB_USERNAME=laravel
DB_PASSWORD=secret
ホスト側で設定
sudo chown -R $USER:$USER src/storage src/bootstrap/cache
sudo chmod -R 777 src/storage src/bootstrap/cache
Laravel12のインストールとマイグレーション
docker exec -it laravel_app bash
composer create-project laravel/laravel . --prefer-dist
php artisan migrate
exit
Discussion