Laradock에서 Laravel 환경 구축 자신의 메모

전제


  • macOS High Sierra 10.13.6
  • docker for mac 설치됨

  • 절차



    1. 디렉토리 만들기 및 이동


    $ mkdir myproject
    $ cd myproject
    

    2. GitHub에서 Laradock을 복제하고 이동



    myproject
    
    $ git clone https://github.com/Laradock/laradock.git
    $ cd laradock
    

    3. 샘플 환경 설정 파일 복사



    laradock
    $ cp env-example .env
    

    4. 위에서 복사한 .env 파일을 vi 등 임의의 에디터에서 열기



    laradock
    $ vi .env
    

    5. .env 파일의 다음 위치 편집



    laradock/.env
    ### Paths #################################################
    
    # Point to the path of your applications code on your host
    APP_CODE_PATH_HOST=../projectName/ # 任意のプロジェクト名追加
    
    省略
    
    ### MYSQL #################################################
    
    MYSQL_VERSION=5.7 # latestから5.7に変更
    MYSQL_DATABASE=default # DB名を変えたい場合はここを変更
    MYSQL_USER=default
    MYSQL_PASSWORD=secret
    MYSQL_PORT=3306
    MYSQL_ROOT_PASSWORD=root
    MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
    

    6. docker-compose 명령으로 모든 컨테이너를 시작합니다.



    laradock
    $ docker-compose up -d nginx mysql phpmyadmin redis
    
    # 初めはimageをダウンロードしてくるため、かなり時間がかかる
    # 2回目以降は一瞬で起動完了する
    # 最終的に以下のような表示が出たらコンテナの起動完了
    
    Creating laradock_mysql_1            ... done
    Creating laradock_redis_1            ... done
    Creating laradock_docker-in-docker_1 ... done
    Creating laradock_phpmyadmin_1       ... done
    Creating laradock_workspace_1        ... done
    Creating laradock_php-fpm_1          ... done
    Creating laradock_nginx_1            ... done
    
    # 念のため以下のコマンドで起動確認
    $ docker-compose ps
               Name                          Command               State                    Ports                  
    ---------------------------------------------------------------------------------------------------------------
    laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp                                
    laradock_mysql_1              docker-entrypoint.sh mysqld      Up      0.0.0.0:3306->3306/tcp, 33060/tcp       
    laradock_nginx_1              /bin/bash /opt/startup.sh        Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
    laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp                                
    laradock_phpmyadmin_1         /run.sh supervisord -n -j  ...   Up      0.0.0.0:8080->80/tcp, 9000/tcp          
    laradock_redis_1              docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp                  
    laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp       
    
    # State が Up で起動中
    
    

    6. 다음 명령으로 workspace 컨테이너에 들어가 Laravel 설치



    laradock
    $ docker-compose exec --user=laradock workspace bash
    laradock@hogehoge:/var/www$ 
    # rootで入るとcomposerの実行時に怒られるため、--userオプションでlaradockユーザーで入る
    
    # 以下のコマンドでlaravelプロジェクト作成 projectNameは手順5.で指定した名前を使用する。
    laradock@hogehoge:/var/www$ composer create-project laravel/laravel projectName
    
    # インストールが完了するまで待つ、10〜15分程度?
    

    7. 컨테이너에서 Laravel 환경 설정 파일 편집



    laradock
    # 初めにデフォルトで用意されている設定ファイルをコピー
    laradock@hogehoge:/var/www$ cp .env.example .env
    
    # コピーした設定ファイルをvi等任意のエディタで開く
    laradock@hogehoge:/var/www$ vi .env
    
    

    .env
    # 省略
    
    # 以下の箇所を修正する。
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1 # mysqlに変更 laradockが名前解決してくれる
    DB_PORT=3306
    DB_DATABASE=homestead # defaultに変更
    DB_USERNAME=homestead # defaultに変更
    DB_PASSWORD=secret
    
    # 省略
    
    REDIS_HOST=127.0.0.1 # redisに変更 laradockが名前解決してくれる
    REDIS_PASSWORD=null
    REDIS_PORT=6379
    

    8. 컨테이너 재시작



    laradock
    # コンテナから抜ける
    laradock@hogehoge:/var/www$ exit
    
    # コンテナの停止と起動
    $ docker-compose stop
    $ docker-compose up -d nginx mysql phpmyadmin redis
    

    9. 완료



    localhost 로 이동하여 Laravel 화면이 표시되면 OK.

    phpMyAdmin은 localhost:8080 ⇦여기.


    비망



    Laradock은 환경 변수 파일에 버전 정보와 컨테이너에 필요한 정보를 정리하고 있기 때문에,
    기본적으로 docker-compose.yml를 놀 필요가 없다.

    좋은 웹페이지 즐겨찾기