Laradock을 사용하여 Laravel 환경을 5 분 안에 구축하십시오.

5756 단어 LaraDockPHP라라벨

소개



Laradock이라는 Docker 컨테이너상에서 Laravel을 동작시킬 수 있는 멋진 프로젝트가 있다는 것으로, 조속히 시험해 보았다. 자주 있는 일이지만, 문서로 아무래도 간단하게 순서가 쓰여져도, 실제로는 손잡이 포인트가 숨어 있고, 이번도 조금 멈추었으므로, 거기도 포함한 순서가 됩니다.

환경


  • 2018/06/10 현재
  • Docker for mac 18.03.1-ce
  • Laravel v5.6.*
  • Laradock v7.2.0
  • nginx

  • 공식 문서



    ㅡㅡㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ 이오 / 인 t 로즈 c 치온 /
    우선은 이 인트로덕션을 따라 진행해 본다.

    절차



    git clone


    $ cd /YOUR/PROJECT/PATH
    $ git clone https://github.com/Laradock/laradock.git
    $ ls -lah
    laradock
    

    이 기사와 동일한 버전을 사용하려면 -b v7.2.0를 지정하십시오.
    지정되지 않은 최신.

    .env 만들기



    환경 변수가 결합된 파일을 복사하여 작성
    cd /YOUR/PROJECT/PATH/laradock
    cp env-example .env
    

    나중에 다시 편집하지만 급한 포트를 바꿔 놓습니다.
    문서에는 실려 있지 않습니다만, 80이라고 mac의 Apache가 이용하는 포트와 쓰러 에러가 되는 일이 있으므로 8888로 바꾸어 둡니다
    
    $ vi .env
    
    ### NGINX #################################################
    
    NGINX_HOST_HTTP_PORT=8888 // 80 → 8888(まぁ何でもいい)
    

    컨테이너 생성



    시작할 서비스를 지정하고 up합니다.
    (서비스라는 것은 docker-compose.yml의 각 항목의 값)
    $ cd /YOUR/PROJECT/PATH/laradock
    $ docker-compose up -d nginx mysql phpmyadmin redis workspace
    // ・・・しばしご歓談・・・
    
    // コンテナの起動を確認
    $ docker ps --format "table {{.ID}} {{.Names}}"
        CONTAINER ID NAMES
        27f1a9cbf5a2 laradock_nginx_1
        dff26644e009 laradock_php-fpm_1
        04100991a64a laradock_phpmyadmin_1
        430d25cd8b16 laradock_workspace_1
        d53e9263b730 laradock_mysql_1
        311721d412de laradock_docker-in-docker_1
        568796ee3551 laradock_redis_1
    

    Laravel 본체 다운로드



    본체는 composer를 이용하여 입수합니다.
    composer나 필요한 라이브러리가 갖추어진 workspace 컨테이너에서 실시합니다.
    $ docker exec -it laradock_workspace_1 bash
    
    // コンテナにて
    # cd /var/www
    # composer create-project laravel/laravel my-cool-app "5.6.*"
    # ls
    laradock  my-cool-app
    
    docker-compose.yml 에서 볼륨이 ../:/var/www인 상태에서 컨테이너를 생성했기 때문에/YOUR/PROJECT/PATH/laradock/../가 컨테이너의 /var/www에 마운트되고,
    로컬에서도 본체를 확인할 수 있습니다.
    // ローカルにて
    $ cd /YOUR/PROJECT/PATH
    $ ls
    laradock  my-cool-app
    

    .env에 Laravel 경로 설정


    $ vi .env
    APP_CODE_PATH_HOST=../
    ↓
    APP_CODE_PATH_HOST=../my-cool-app/
    
    // コンテナ更新
    $ docker-compose up -d nginx mysql phpmyadmin redis workspace
    
    // マウントされているパスが変わっているのが分かる
    $ docker exec -it laradock_workspace_1 bash
    
    # cd /var/www && ls
    app        composer.json  database      public     routes      tests
    artisan    composer.lock  package.json  readme.md  server.php  vendor
    bootstrap  config         phpunit.xml   resources  storage     webpack.mix.js
    

    브라우저에서 확인


    http://localhost:8888/
    

    터터 룬



    localhost 이외의 도메인을 설정해 봅니다.



    방금 전에 환영 화면을 보았지만 시도에 도메인을 http://my-cool-app.test:8888로 변경해 보겠습니다.
    // ローカルにて
    $ cd /YOUR/PROJECT/PATH/laradock/nginx/sites
    $ cp default.conf my-cool-app.conf
    vi my-cool-app.conf
    
    server_name my-cool-app.test; //ここだけ変更
    
    $ sudo vi /etc/hosts
    // 追記する
    127.0.0.1   my-cool-app.test
    

    이때 도메인은 〇〇.dev는 피하는 편이 좋습니다.
    (Chrome에서 .dev 도메인이 HTTPS로 리디렉션됨)

    주의점



    .env port 변경



    80에서 docker-compose up하면 nginx 컨테이너가 시작되지 않고 다음과 같은 오류가 발생할 수 있습니다.
    Starting laradock_nginx_1 ... error
    
    ERROR: for laradock_nginx_1  Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (779ebdcb60c4eb4d4e2688df7076747a12b54e2770016a280723a506fb82f656): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)
    
    ERROR: for nginx  Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (779ebdcb60c4eb4d4e2688df7076747a12b54e2770016a280723a506fb82f656): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)
    ERROR: Encountered errors while bringing up the project.
    

    원인은 mac의 Apache나 culprit라는 프로세스가 80포트를 사용했기 때문이었습니다.
    (처음 아무것도 생각하지 않고 진행하여 오류가 되었다)

    ERROR: for nginx Cannot start service nginx
    라는 ISSUE를 보고 해결했습니다.

    〇〇.dev 도메인 사용 안함



    이유는 Chrome이라면 .dev가 강제로 HTTPS가되기 때문에 그리고 대신“.localhost”, “.invalid”, “.test”, or “.example”. 근처를 사용하도록(듯이) 말해졌습니다.

    변경사항이 반영되지 않음



    만약 up 했는데 설정이 컨테이너에 반영되지 않은 의혹이 있으면, 이하와 같이 캐쉬 없이 재빌드를 시험해 보면 좋을지도 모릅니다.
    $ docker-compose build --no-cache nginx 
    

    좋은 웹페이지 즐겨찾기