Dockerでlaravel9の環境構築の仕方
Dockerを使用してLaravel 9の開発環境を構築するためには、次の手順を実行する必要があります。
1. Dockerをインストールする:Dockerをインストールし、コマンドラインからアクセスできるようにしてください。
2. Laravel 9プロジェクトを作成する:Laravel 9の新しいプロジェクトを作成します。
docker run --rm -v $(pwd):/app composer create-project --prefer-dist laravel/laravel:^9.0 my-project
3. Dockerfileを作成する:プロジェクトのルートディレクトリにDockerfileを作成し、以下の内容を追加します。
FROM php:8.0-apache
# Install dependencies
RUN apt-get update && \
apt-get install -y \
libonig-dev \
libzip-dev \
unzip
# Install extensions
RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl bcmath
# Enable Apache modules
RUN a2enmod rewrite
# Copy project files to container
COPY . /var/www/html/
# Set permissions
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
# Expose port
EXPOSE 80
4. docker-compose.ymlを作成する:プロジェクトのルートディレクトリにdocker-compose.ymlを作成し、以下の内容を追加します。
version: "3.9"
services:
app:
build:
context: .
dockerfile: Dockerfile
image: my-project
container_name: my-project
restart: unless-stopped
ports:
- "8080:80"
volumes:
- .:/var/www/html
environment:
APP_NAME: "My Project"
APP_ENV: "local"
APP_KEY: ""
APP_DEBUG: "true"
APP_URL: "http://localhost:8080"
DB_CONNECTION: "mysql"
DB_HOST: "db"
DB_PORT: "3306"
DB_DATABASE: "my_database"
DB_USERNAME: "my_user"
DB_PASSWORD: "my_password"
depends_on:
- db
db:
image: mysql:8.0
container_name: my-project-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "my_database"
MYSQL_USER: "my_user"
MYSQL_PASSWORD: "my_password"
ports:
- "3306:3306"
volumes:
- ./data/mysql:/var/lib/mysql
5. Dockerコンテナを起動する:以下のコマンドを実行して、Dockerコンテナを起動します。
docker-compose up -d
これでLaravel 9のDocker開発環境が構築され、ブラウザで http://localhost:8080
にアクセスすると、Laravelのデフォルトのウェルカムページが表示されます。