mac,docker,laravel9をつかってローカル環境を作る方法
前提条件
- MacにDocker Desktopがインストールされていること。
- Composerがインストールされていること。
- Node.jsとnpmがインストールされていること。
手順
Laravelアプリケーションの作成
Laravelアプリケーションを作成するには、ターミナルを開いて以下のコマンドを実行してください。
composer create-project laravel/laravel my-project-name
上記コマンドを実行することで、Laravelアプリケーションの雛形が生成されます。
Docker Composeファイルの作成
Laravelアプリケーションを実行するために、Docker Composeファイルを作成します。以下の内容を持つdocker-compose.ymlファイルを作成してください。
version: "3"
services:
app:
build:
context: .
dockerfile: Dockerfile
image: my-laravel-app
container_name: my-laravel-app
restart: unless-stopped
working_dir: /var/www/html
volumes:
- ./:/var/www/html
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
environment:
- "DB_HOST=db"
- "DB_PORT=3306"
- "DB_DATABASE=my_database"
- "DB_USERNAME=my_username"
- "DB_PASSWORD=my_password"
depends_on:
- db
networks:
- my-network
db:
image: mysql:5.7
container_name: my-laravel-db
restart: unless-stopped
environment:
- "MYSQL_DATABASE=my_database"
- "MYSQL_USER=my_username"
- "MYSQL_PASSWORD=my_password"
- "MYSQL_ROOT_PASSWORD=my_root_password"
volumes:
- dbdata:/var/lib/mysql
networks:
- my-network
volumes:
dbdata:
networks:
my-network:
上記ファイルでは、LaravelアプリケーションとMySQLの2つのコンテナを定義しています。
Dockerfileの作成
Dockerイメージを作成するために、以下の内容を持つDockerfileを作成してください。
Dockerfile:
FROM php:7.4-fpm-alpine
RUN apk add --update --no-cache \
bash \
git \
libzip-dev \
oniguruma-dev \
&& docker-php-ext-install \
pdo_mysql \
zip \
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& rm -rf /var/cache/apk/*
WORKDIR /var/www/html
COPY . .
RUN composer install
RUN php artisan key:generate
RUN chown -R www-data:www-data /var/www/html
CMD php-fpm
docker-compose.yml:
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
volumes:
- .:/var/www/html
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: your_mysql_password
MYSQL_DATABASE: your_database_name
MYSQL_USER: your_database_username
MYSQL_PASSWORD: your_database_password
volumes:
- mysql-data:/var/lib/mysql
redis:
image: redis:6.0
ports:
- "6379:6379"
volumes:
- redis-data:/data
volumes:
mysql-data:
redis-data:
Laravel9の設定
.envファイルのAPP_URLをhttp://localhost:8888に変更してください。
Dockerコンテナの起動
ターミナルを開いて、Laravel9のプロジェクトルートで以下のコマンドを実行します。
docker-compose up -d
コンテナが起動すると、ブラウザでhttp://localhost:8000にアクセスして、Laravel9のデフォルトページが表示されることを確認してください。
以上が、MacにDockerを使ってLaravel9でローカル環境を作る方法です。