【Intel Mac】Docker×Laravel10の環境構築方法
この記事でできること
IntelプロセッサのMacでDockerを使用したLaravelの環境を構築することできます。
Laravelの初期画面が表示されるまでの記事になっています。
前提
以下がインストールされていること
・Composer
・PHP ver8.2
・Node
・NPM
Dockerのインストール
以下のURLからDocker Desktop on Macをインストールします。
今回はIntelチップの方を選択してインストールします。
インストールが完了したら、Docker Desctopのアプリを起動します。
引き続きインストールの手順があるので続けていきます。
Dockerへの会員登録もしました。
インストールが完了したら、以下のコマンドでインストールしたか確認します。
$ docker version
Client:
Cloud integration: v1.0.35+desktop.4
Version: 24.0.6
API version: 1.43
Go version: go1.20.7
Git commit: ed223bc
Built: Mon Sep 4 12:28:49 2023
OS/Arch: darwin/amd64
Context: desktop-linux
Server: Docker Desktop 4.23.0 (120376)
Engine:
Version: 24.0.6
API version: 1.43 (minimum version 1.12)
Go version: go1.20.7
Git commit: 1a79695
Built: Mon Sep 4 12:32:16 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.22
GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca
runc:
Version: 1.1.8
GitCommit: v1.1.8-0-g82f18fe
docker-init:
Version: 0.19.0
GitCommit: de40ad0
インストールできていれば大丈夫です。
Dockerコンテナを作成する
ターミナルを起動してホームディレクトリに移動する。
Docker用に複数のプロジェクトを管理するディレクトリを作成する。
$ mkdir docker
作成したdockerディレクトリに移動します。
$ cd docker
プロジェクトを作成します。
今回はtestとします。任意の名前で大丈夫です。
$ mkdir test
作成したディレクトリに移動する。
$ cd test
docker-compose.ymlファイルを作成します。
このファイルはコンテナをビルドするためのファイルです。
コンテナに必要なコマンドをオプション付きで全て記述できるため、環境差異によるミスが起こりにくくなります。
$ touch docker-compose.yml
docker-compose.yml
version: "3.8"
services:
database:
image: mysql:5.7
container_name: db_test
restart: unless-stopped
environment:
MYSQL_DATABASE: db_mysql_test # データベース名
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: admin # ユーザー名(任意)
MYSQL_PASSWORD: password # ユーザーのパスワード(任意)
volumes:
- ./volumes/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- ./volumes/my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- "3306:3306"
php-apache:
container_name: php_apache_test
build:
context: ./php
ports:
- "8000:80" # localhost:8000でアクセスできる
volumes:
- ./src:/var/www/test
- ./apache/default.conf:/etc/apache2/sites-enabled/000-default.conf
depends_on:
- database # databaseに後に実行する
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- database # databaseに後に実行する
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=database # データベース名
- PMA_USER=admin # phpMyAdminのユーザー名
- PMA_PASSWORD=password # phpMyAdminのパスワード
ports:
- "3000:80" # localhost:3000でアクセスできる
volumes:
- ./volumes/docker/phpmyadmin/sessions:/sessions
次に「イメージ作成」するためのDockerfileを作成します。
$ mkdir php
$ touch php/Dockerfile
Dockerfile
FROM php:8.2.10-apache
RUN apt update \
&& apt install -y \
g++ \
libicu-dev \
libpq-dev \
libzip-dev \
zip \
zlib1g-dev \
npm \
nodejs \
vim \
&& docker-php-ext-install \
intl \
opcache \
pdo \
pdo_pgsql \
pgsql
WORKDIR /var/www/test
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
apacheの設定ファイルを作成します。
$ mkdir apache
$ touch apache/default.conf
default.conf
<VirtualHost *:80>
ServerName test
DocumentRoot /var/www/test/public
<Directory /var/www/test>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
testの部分を任意のプロジェクト名に設定してください。
ここまでできたら、コンテナをビルドします。
$ docker-compose up -d --build
エラーが発生しなければ起動しています。
Docker Desktopを見ると、作成したプロジェクトが起動している事が確認できます。
ここまでできたら次はLaravelをインストールしていきます。
Laravelをインストール
インストール用のディレクトリを作成します。
$ mkdir src
php-apacheコンテナでコマンドを使用できるようにします。
CLIをオープンします。
$ docker-compose exec php-apache /bin/bash
最新版のLaravelをインストールします。
$ composer create-project laravel/laravel .
バージョンを指定するには「composer create-project laravel/laravel=◯◯◯ .」のように指定します。
インストールが完了したら、srcフォルダに作成されていることが確認できます。
http://localhost:8000 にアクセスしたらLaravelの初期画面が表示されていることが確認できます。
こちらで初期導入は完了です。色々な環境を設定することができるので色々試していくと楽しそうです。
ここまで読んでいただきありがとうございました。
Discussion