서투른 Docker를 사용하여 Laravel 개발 환경 구축을 구축 (MailHog 사용하고 싶다)

계기


  • 환경 개발 서투른
  • 긴 명령을 치지 않으면 docker 무서운
  • 그냥 Laravel 개발 환경을 원했습니다

  • 어쨌든 환경 구축 · docker에 대한 먹지 않고 싫어 (노브 먹고 싫어)
    감이 반단하지 않기 때문에 굳이 docker로 Laravel 환경 구축 해 본다

    Laradock이란?



    Laradock? ? docker가 아니야! !
    라는 쓰레기를 넣으면서・・・

    A full PHP development environment for Docker.
    Supports a variety of useful Docker Images, pre-configured to provide a wonderful PHP development environment.

    참조 : Lradock

    라라도크는 라라벨 커뮤니티의 유지가 유지보수하고 있다
    오픈 소스 Laravel 환경 개발이며, "Docker"상에서 동작한다.

    그래서 자꾸 설명하면,
    docker가 땅에서 Laradock가 집 같은 관계인 것이다.

    Laradock 다운로드 및 docker 초기화



    프로젝트 디렉토리 생성



    최종 디렉토리 이미지
    projectname
         laradock-projectname
         laravel-projectname
    

    위의 디렉토리를 이미지하면서 우선 projectname 디렉토리를 작성해, 그 안에 들어간다.
    $ mkdir projectname
    $ cd projectname 
    

    Laradock 다운로드



    Laradock을 GitHub에서 복제합니다. 붙이고 싶은 디렉토리명을 마지막에 입력.
    $ git clone https://github.com/Laradock/laradock.git laradock-projectname
    

    Laradock 환경 설정 파일 만들기



    Laradock 디렉토리의 laradock-projectname에 들어간다.env-example 파일을 .env로 복사합니다.
    $ cd laradock-projectname
    $ cp env-example .env
    

    docker 컨테이너 초기화



    컨테이너 초기화에서는 필요한 파일을 다운로드하기 때문에 비교적 시간이 걸린다.
    $ docker-compose up -d nginx mysql workspace phpmyadmin
    

    이쪽의 커맨드로 State가 Up가 되어 있으면 무사 성공!
    $ docker-compose ps
    

    Laravel 프로젝트 만들기



    Laravel 프로젝트는 "workspace"컨테이너에 생성됩니다.

    workspace 컨테이너에 로그인



    「workspace」컨테이너에는 Laravel에 필요한 것이 세트 준비되어 있으므로,
    composer 등은 "workspace"컨테이너를 통해 실행.

    우선 로그인
    $ docker-composer exec workspace bash
    

    composer 명령을 실행하여 새 프로젝트를 만듭니다.
    이번은 laravel5.5로 작성하고 싶었으므로 버전 지정.
    $ composer create-project laravel/laravel laravel-projectname --prefer-dist "5.5.*"
    

    안전하게 만들 수 있으면 컨테이너에서 로그 아웃
    $ exit
    

    Laradock 환경 설정 파일 설정



    방금 만든 Laradock 디렉토리 아래의 .env를 변경했습니다.
    ※필요 부분 이외 생략
    ### Paths #################################################
    
    # Point to the path of your applications code on your host
    APP_CODE_PATH_HOST=../laravel-projectname
    
    # Point to where the `APP_CODE_PATH_HOST` should be in the container
    APP_CODE_PATH_CONTAINER=/var/www
    
    # You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
    APP_CODE_CONTAINER_FLAG=:cached
    
    # Choose storage path on your machine. For all storage systems
    DATA_PATH_HOST=~/.laradock-projectname/data
    
    
    

    nginx 설정



    Laradock 디렉터리 아래의 docker-compose.yml 를 변경한다.
    이제 포트 번호를 8888로 변경할 수있었습니다.
    ※필요 부분 이외 생략
    ### NGINX Server #########################################
        nginx:
          build:
            context: ./nginx
            args:
              - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
              - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
              - CHANGE_SOURCE=${CHANGE_SOURCE}
              - http_proxy
              - https_proxy
              - no_proxy
          volumes:
            - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
            - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
            - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
            - ${NGINX_SSL_PATH}:/etc/nginx/ssl
          ports:
            - "8888:80"
            - "443:443"
          depends_on:
            - php-fpm
          networks:
            - frontend
            - backend
    

    컨테이너 재부팅



    일단 설정이 끝난 곳에서 컨테이너를 재시작.
    $ docker-compose stop
    $ docker-compose up -d nginx mysql workspace phpmyadmin
    

    그리고 드디어・・・・・・・



    브라우저를 열고 https:8888 방문


    그럼 그럼 !!!!

    좋은 웹페이지 즐겨찾기