Docker Compose로 Laravel 개발 환경을 구축

전회, Docker Compose로 Laravel 환경을 구축해 보았지만, Laravel의 취급에 곤란했다.
Docker Compose로 Laravel 개발 환경을 구축

결국 컨테이너에 들어가 Laravel 설치했지만, , , 조금 이마이치.
생각한 결과, docker-compose.yml들과 함께 Laravel도 리포지토리 관리하면 좋지 않을까 생각했다.
그래, 어쩌면 이것이 제일! 라고 할까, 이것 밖에 없다! !

기계 사양


  • Mac mini 2018
  • macOS Catalina (10.15.x)
  • Intel Core-i7 3.2GHz 6 코어
  • 메모리 32GB
  • SSD 512GB

  • Docker 환경


  • Nginx 최신 버전
  • PHP (PHP-FPM) 7.2.x
  • MySQL 5.7.x
  • Composer 최신 버전
  • Laravel 5.6.x

  • 할 일


  • Docker Compose로 Laravel 환경 구축

  • 보충



    각 환경을 오거나 하기 때문에 아래와 같이 기재합니다.
    [Mac]$ MacのターミナルでMac内の作業
    [PHP]$ MacのターミナルからPHPコンテナに接続して作業
    

    docker-compose.yml 편집


    services:
      nginx:
      ・・・
        volumes:
          - ~/MountPoint/docker/home:/home/docker
      ・・・
      php:
      ・・・
        volumes:
          - ~/Work/MountPoint/docker/home:/home/docker
      ・・・
      db:
        volumes:
          - ~/Work/MountPoint/docker/db/data:/var/lib/mysql
      ・・・
    

    마운트 포인트는 컨테이너 파일들로부터 분리하고 있었지만, 같은 디렉토리로 하기 때문에, 아래와 같이 변경.
    services:
      nginx:
      ・・・
        volumes:
          - ./src:/home/docker
      ・・・
      php:
      ・・・
        volumes:
          - ./src:/home/docker
      ・・・
      db:
        volumes:
          - ./db:/var/lib/mysql
      ・・・
    

    .gitignore 편집



  • /var/lib/mysql 의 마운트는 불필요.
  • /home/docker/laravel 이외의 마운트는 불필요.
  • /db
    /src/*
    !/src/laravel
    

    Laravel 준비



    상기까지로 병아리가 되지만, 모처럼이므로 Laravel도 준비.
    Mac과 컨테이너의 PHP 버전이 다르기 때문에 컨테이너 내에서 작업.
    [Mac]$ docker-compose exec --user 1000 php bash
    
    [PHP]$ composer create-project --prefer-dist laravel/laravel laravel "5.6.*"
    [PHP]$ cd laravel
    [PHP]$ composer require --dev barryvdh/laravel-ide-helper
    [PHP]$ composer require --dev squizlabs/php_codesniffer
    [PHP]$ mkdir bin
    [PHP]$ vi bin/clear-laravel.sh
    ---
    #!/bin/bash
    php artisan view:clear
    php artisan cache:clear
    php artisan config:clear
    php artisan route:clear
    php artisan clear-compiled
    php artisan config:cache
    composer dump-autoload
    php artisan ide-helper:generate
    php artisan ide-helper:models -N
    php artisan ide-helper:meta
    find . -name '._.DS_Store' -type f -ls -delete
    ---
    :wq
    [PHP]$ vi .env.example
    ---
    :%s/DB_HOST=127.0.0.1/DB_HOST=mysql/g
    :%s/DB_DATABASE=homestead/DB_DATABASE=hoge/g
    :%s/DB_USERNAME=homestead/DB_USERNAME=fuga/g
    :%s/DB_PASSWORD=secret/DB_PASSWORD=docker#DOCKER1234/g
    ---
    :wq
    

    완성! !
    htps : // 기주 b. 코 m/보 b타보/도 c케 r2

    사용법



    Laravel 환경 준비


    [Mac]$ cd <任意のディレクトリ>
    [Mac]$ git clone https://github.com/bobtabo/docker2.git docker
    [Mac]$ cd docker
    [Mac]$ docker-compose up -d
    ・・・
    Creating mysql ... done
    Creating php   ... done
    Creating nginx ... done
    
    [Mac]$ docker-compose exec --user 1000 php bash
    
    [PHP]$ pwd
    /home/docker
    
    [PHP]$ cd laravel
    [PHP]$ composer install
    [PHP]$ chmod -R 777 storage
    [PHP]$ chmod -R 777 bootstrap/cache
    [PHP]$ cp -p .env.example .env
    [PHP]$ php artisan key:generate
    [PHP]$ chmod 755 bin/clear-laravel.sh
    [PHP]$ bin/clear-laravel.sh
    [PHP]$ php artisan migrate:fresh --seed
    

    동작 확인(Mac 호스트 편집)


    [Mac]$ sudo vi /private/etc/hosts
    ★下記を点線内を追記
    ---
    127.0.0.1 laravel.local
    ---
    :wq
    

    브라우저에서 동작 확인





    컨테이너 삭제


    [Mac]$ docker-compose down --rmi all --volumes
    

    ※참고
    《멸망의 주문》 Docker Compose로 만든 컨테이너, 이미지, 볼륨, 네트워크를 일괄 완전 소거하는 편리 명령

    좋은 웹페이지 즐겨찾기