📑

【Intel Mac】Docker×Laravel10の環境構築方法

2023/09/19に公開

この記事でできること

IntelプロセッサのMacでDockerを使用したLaravelの環境を構築することできます。
Laravelの初期画面が表示されるまでの記事になっています。

前提

以下がインストールされていること
・Composer
・PHP ver8.2
・Node
・NPM

Dockerのインストール

以下のURLからDocker Desktop on Macをインストールします。
今回はIntelチップの方を選択してインストールします。
https://docs.docker.com/desktop/install/mac-install/

インストールが完了したら、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