docker環境作成

前提

Windows11
Docker Desktop
PHP/Laravel

手順

1. docker-compose.ymlを書く

version: "x.x"

services:
  web:
    build:
      context: .
      dockerfile: ./web/Dockerfile
    container_name: "web"
    restart: always
    volumes:
      - ./web/php.ini:/usr/local/etc/php/php.ini
      - ../src:/var/www/html/
    ports:
      - 8080:80
    depends_on:
      - mysql
      - mail

  mysql:
    image: mysql:x.x
    restart: always
    container_name: "mysql"
    volumes:
      - ./mysql/data:/var/lib/mysql
    command:
      - --sql-mode=NO_ENGINE_SUBSTITUTION
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=${DB_DATABASE}
      - MYSQL_USER=${DB_USERNAME}
      - MYSQL_PASSWORD=${DB_PASSWORD}

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    restart: always
    container_name: "phpmyadmin"
    volumes:
      - ./phpmyadmin/sessions:/sessions
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mysql
      - PMA_USER=${DB_USERNAME}
      - PMA_PASSWORD=${DB_PASSWORD}
    ports:
      - 4040:80
    depends_on:
      - mysql
  mail:
    image: mailhog/mailhog
    container_name: "mail"
    restart: always
    ports:
      - "8025:8025"

2. docker-composeで実行

cd path-to/
docker-compose up -d

3. コンテナに入る
docker exec -it [コンテナ名] bash

4.コンテナ内でパッケージインストールなど
composer install
php artisan key:generate
php artisan migrate:fresh --seed