Docker Compose로 Laravel 개발 환경을 구축

Docker 환경을 만들어 보자!・・・라고 생각했기 때문에, 만들어 보았습니다.
Docker+Amazon Linux로 Laravel 개발 환경 구축

하지만 OS 이미지에 설치하는 것은 Docker의 본래 사용법이 아닐까.
그래서 Docker Compose에서의 환경 구축을 copipe 할 수 있도록 정리했습니다.

기계 사양


  • 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

  • 할 일


  • Docker Compose로 환경 구축

  • 보충



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

    전제



    Docker 설치됨

    컨테이너 생성



    컨테이너 정의를 만들었습니다!
    htps : // 기주 b. 코 m/보 b 타보/도 c케 r
    [Mac]$ cd <任意のディレクトリ>
    [Mac]$ git clone https://github.com/bobtabo/docker.git
    [Mac]$ cd docker
    [Mac]$ docker-compose up -d
    ・・・
    Creating mysql ... done
    Creating php   ... done
    Creating nginx ... done
    

    생성되는 호스트 OS(Mac)의 마운트 포인트
    ~/Work/MountPoint/docker/home -> /home/docker
    ~/Work/MountPoint/docker/db/data -> /var/lib/mysql
    

    ※참고
    Concrete5 on Nginx + php7-fpm을 docker-compose로 시도했습니다.
    docker-compose를 사용하여 (가능한 한) 공식 이미지로 PHP 개발 환경을 만들었습니다.
    PHP의 공식 Docker 이미지로 UNIX 소켓 통신하려고 함정에 빠지는 권
    docker-compose로 unix 소켓을 사용하여 Nginx, php-fpm 컨테이너 만들기

    Laravel 설치



    Laravel 설치를 Dockerfile에 쓰면 컨테이너 시작시 매번 설치가 실행되는 것 같다.
    어느 기사를 읽어도 Laravel은 별작업인 것은, 그런 일이었는가.
    뭔가 효율이 좋은 방법은 없는 것인가,,, 또 이번 생각하자.
    그래서 컨테이너 안에 들어가서 Laravel 환경을 만듭니다.
    [Mac]$ docker-compose exec --user 1000 php bash
    [PHP]$ pwd
    /home/docker
    
    [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]$ chmod -R 777 storage
    [PHP]$ chmod -R 777 bootstrap/cache
    
    [PHP]$ vi .env
    ★DB設定を置換
    :%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
    
    [PHP]$ php artisan migrate
    [PHP]$ php artisan db:seed
    
    [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]$ chmod 755 bin/clear-laravel.sh
    [PHP]$ bin/clear-laravel.sh
    

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


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

    브라우저에서 동작 확인





    컨테이너 삭제


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

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

    좋은 웹페이지 즐겨찾기