구글 클라우드에 Laravel 6를 설정하고 지속적인 통합을 통해 단계적으로 실행(CI)

지난 몇 년 동안 라레빌soared은 인기가 많았다.라라벨 커뮤니티에서는 라라벨이 PHP 작성을 고통스럽지 않게 재미있게 만들었다고 말하기도 했다.Laravel 6에는 재미있는 새로운 기능이 있습니다features.응용 프로그램에 확장 가능한 작업 URL을 가져오는 데 몇 시간, 심지어 며칠이 걸립니다.Kubernetes와 같은 것을 세우는 것은 어려운 임무이다.이것이 바로 Google Cloud Run의 플래시 포인트입니다. 몇 분 안에 용기화된 응용 프로그램에 유효한 HTTPs URL을 얻을 수 있습니다.
Google Cloud Run는 서버가 없고 완전히 구글이 관리합니다. 초대량, 초당 요금 계산, HTTPs URL과 당신의 도메인 맵을 얻을 수 있습니다.무상태 용기를 실행하려면구름 운행은 의심할 여지없이 가장 간단한 방법이다.이 글에서 나는 당신의 Laravel6 응용 프로그램을 구글 클라우드에서 실행하고 지속적인 통합(CI)을 하는 방법을 상세하게 소개할 것입니다.

선결 조건

  • PHP/Composer에 익숙하고 Laravel에 대해 잘 알고 계십니다. (여기서 로그인하면 바로 그러실 것 같습니다.)
  • CLI에서 Git 사용 방법
  • 귀하의 코드는 GitHub for CI/CD에 호스팅되며 GitHub
  • 에 익숙합니다.
  • docker 이해, 다단계 구축 가능성
  • 유효한 구글 클라우드 계정을 가지고 있다(그들이 너에게 준다$300 credit 1년 무료, 계정을 가지고 있지 않을 이유가 없다)
  • 왜 Cloud Run이 초보자에게 가장 좋은 선택인지.


    다음과 같은 두 가지 원인에서 비롯되다
  • Docker 및 CI/CD와 같은 모범 사례 및 소프트웨어 이해
  • 버튼 하나를 클릭하고 2가지를 선택하여 5분만 기다리면 유효한 HTTPs URL을 얻을 수 있습니다.이보다 더 쉬울 수 있을까:)
  • 배치 절차


    다음은 Cloud Run에서 Laravel 6를 설정하고 배포하는 절차입니다.

    1. Laravel 복제 또는 새 Laravel 프로젝트


    공식installation 지침의 지시에 따라 Laravel을 복제하거나 composer 또는 Laravel CLI를 사용하는 것부터 시작한다.composer를 사용하여 최신 Laravel을 얻고 있습니다. 아래와 같습니다.

    명령


    최신 Laravel을 가져오려면 다음 명령을 실행했습니다.
    composer create-project --prefer-dist laravel/laravel laravel6-on-google-cloud-run
    
    Laravel 출력 설치

    2. 국부 테스트를 먼저 진행


    그리고 구글 클라우드에서 cd laravel6를 실행하고 php artisan serve를 실행합니다. 작동하는지 확인하십시오. 저에게는 웹 브라우저에서 실행http://localhost:8000이 좋습니다.PHP 7.2를 로컬에 설치했습니다.
    Laravel 6와 artisan serve가 로컬에서 실행됨

    3. 새 GitHub 재구매


    다음과 같이 Github에 새 저장소를 만듭니다.
    Github 리셋 생성
    당신은 Git 위탁 관리 공급자를 사용할 수 있습니다. 이 예에서 저는 Github Actions 테스트를 실행할 것입니다. Github도 가장 유행하는 Git 위탁 관리입니다.

    4. 리셋 추가, 밀어넣기


    이제 리셋 프로토콜을 작성한 후 로컬 Laravel 사본에 추가하고 자술한 파일을 전송합니다.이를 위해 CLI에서 다음 명령을 실행하십시오.
    git init 
    code . *# I used VS code to change the readme* git add readme.md 
    git commit -m "Initial commit -- App Readme" 
    git remote add origin [email protected]:geshan/laravel6-on-google-cloud-run.git 
    git push -u origin master
    
    상술한 명령을 실행한 후, 나는githubrepo에서 이것을 얻었다
    초기 추진 후

    5, 전체 Laravel 추가, PR 열기


    이제 다음 명령을 실행하여 Github Repo에 전체 애플리케이션을 PR로 추가합니다.
    git checkout -b laravel6-full-app 
    git add .gitignore
    git add .
    
    git commit -m "Add the whole Laravel 6 app" 
    git push origin laravel6-full-app
    
    그 후에 리턴과 유사한 this에 PR을 열어라.너는 내가 유일하게 이 방면에서 일하는 사람이라고 생각할지도 모르지만, 왜 나는 공관이 필요하니?응, 질서정연하게 일하는 것이 항상 더 좋아. 한 사람만 이 프로젝트를 하고 있어도:)
    그리고 당신의 요청을 합병하세요.

    6.GitHub 작업에 대한 설정 테스트


    재미있는 부분은 아니에요. 당신이 당신의 홍보를 합병한 후에 Github는 이것이 Laravel 프로젝트라는 것을 알게 되었습니다.재구매 페이지에서 작업 탭을 클릭하면 다음을 볼 수 있습니다.
    Laravel 다음 중 하나를 클릭합니다.
    Laravel에서 이 워크플로우를 설정하고 다음 페이지에서 오른쪽 상단의 제출 시작 단추를 누르십시오.그런 다음 다음과 같은 제출 메시지를 추가한 다음 새 파일 제출을 클릭합니다.

    자, 당신의 CI 설정이 있습니다.Laravel 기본 테스트는 매git 푸시에서 실행됩니다.그거 쉽지 않아요?Github가 제공한 거대한 정보에 감사 드립니다.더 이상 창조하지 않다.myCIname.yml 파일:).

    7.docker와dockercompose를 추가하여 로컬에서 응용 프로그램을 실행합니다.


    현재, PHP나artisan 서비스가 없는 상황에서 로컬에서 프로그램을 실행하기 위해docker와dockercompose를 추가합니다.우리도 이 용기가 Google Cloud run에서 Laravel을 실행해야 한다.이 부분의 영감은 니콜라스Laravel on Google Cloud Run의 게시물에서 나왔다.Docker 및 Laravel에 대한 자세한 내용은 이 post 를 참조하십시오.
    Github 인터페이스에서 워크플로우 파일을 추가할 때 다음 명령을 실행하여 호스트를 업데이트합니다.
    git checkout master 
    git fetch 
    git pull --rebase origin master 
    git checkout -b docker
    
    키를 에 추가합니다.환경샘플 파일, 에서 복사합니다.env 파일은 다음과 같습니다.
    APP_NAME=Laravel 
    APP_ENV=local 
    APP_KEY=base64:DJkdj8L5Di3rUkUOwmBFCrr5dsIYU/s7s+W52ClI4AA= ** 
    APP_DEBUG=true 
    APP_URL=http://localhost
    
    이것은 단지 시범일 뿐이기 때문에 이렇게 할 수 있으며, 진정한 응용 프로그램에 대해서는 시종 비밀을 조심해야 한다.생산이 준비된 응용 프로그램에 대해서는 디버깅과 다른 개발과 관련된 일을 닫으십시오.
    프로젝트 루트에 다음 Dockerfile을 추가합니다.
    FROM composer:1.9.0 as build 
    WORKDIR /app 
    COPY . /app 
    RUN composer global require hirak/prestissimo **&&** composer install
    
    FROM php:7.3-apache-stretch
    RUN docker-php-ext-install pdo pdo_mysql
    
    EXPOSE 8080
    COPY --from**=**build /app /var/www/
    COPY docker/000-default.conf /etc/apache2/sites-available/000-default.conf 
    COPY .env.example /var/www/.env 
         RUN chmod 777 -R /var/www/storage/ **&&** \     
         echo "Listen 8080" >> /etc/apache2/ports.conf **&&** \     
         chown -R www-data:www-data /var/www/ **&&** \     
         a2enmod rewrite
    
    그리고 Docker/000 기본값에 다음 파일을 추가합니다.형태
    <VirtualHost *:8080>
      ServerAdmin webmaster@localhost
      DocumentRoot /var/www/public/
    
      <Directory /var/www/>
          AllowOverride All
          Require all granted
      </Directory>
    
      ErrorLog ${APACHE_LOG_DIR}/error.log   
      CustomLog ${APACHE_LOG_DIR}/access.log combined  
    </VirtualHost>
    
    다음에 다음dockercompose를 추가합니다.yml 회사
    version: '3'
    services:
      app:
        build:
          context: ./     
        volumes:
          - .:/var/www    
        ports:       
          - "8080:8080"     
        environment:       
          - APP_ENV**=**local
    

    주요 문제로 귀결되다


    만약 당신이 이곳의 모든 것을 이해해 보려고 한다면, 그것은 아마도 압도적일 것이다. 나는 주요 부분을 요약해 보겠다.
  • 우리는 공식적인 PHP Apache docker 렌즈를 사용하여 Laravel을 실행합니다. 이것은 PHP 버전 7.3이 있습니다.
  • 컴포저와의 의존 관계를 얻기 위해 다중 구축을 사용하고 PHP 7.3과 아파치를 포함하는 docker 1차 이미지로 복사합니다.
  • Google Cloud Run은 웹 서버 감청 포트 8080이 필요하기 때문에 000 기본값을 사용합니다.구성
  • 단일 명령인dockercompose up을 사용하여 쉽게 실행하기 위해dockercompose를 사용했습니다.
  • 현재 읽은 바와 같이 루트에서 dockercompose를 실행하고 모든 작업을 실행한 후에 http://localhost:8080 로 이동하여 Laravel 6가 docker에서 로컬로 실행되는 것을 보십시오.다음은 저의 docker가 마지막 출력까지 쓴 것입니다:

  • Laravel이 Docker에서 잘 작동하기 때문에 PRthis과 같은 프로그램을 열어 Docker를 프로젝트에 추가합니다.PR(Prate Request)을 열기 전에 프로젝트의 루트에서 다음 명령을 실행했습니다.
    git status
    
    다음과 같은 정보를 제공해야 합니다.
    On branch docker
    Untracked files:   
        **(**use "git add <file>..." to include in what will be committed)
    
        Dockerfile   
        docker-compose.yml   
        docker/  
    
    nothing added to commit but untracked files present **(**use "git add" to track**)**
    
    다음 명령을 실행합니다.
    git add . 
    git commit -m "Add docker and docker compose" 
    git push origin docker
    
    다음 그림과 같이 Push에서 Laravel 기본 테스트를 실행합니다.
    Github Acitons를 사용하여 Github에서 실행되는 테스트
    Actions 탭은 재구매한 소유자만 액세스할 수 있으므로 다른 사용자는 테스트 구축 결과를 알 필요가 없습니다.

    8. 구글 클라우드에 배치 버튼 추가


    이제 이 Laravel 설정을 구글 클라우드에 간단하게 배치합시다.도커 지점의 PR을 합병한 것을 감안하면다음 명령을 실행합니다.
    git checkout master 
    git fetch 
    git pull --rebase origin master 
    git checkout -b cloud-run-button
    
    그런 다음 다음 다음 내용을 자술한 파일에 추가합니다.md 파일:
    *### Run on Google cloud run*  **[**!**[**Run on Google Cloud**](**https://storage.googleapis.com/cloudrun/button.svg**)](**https://console.cloud.google.com/cloudshell/editor?shellonly**=**true&cloudshell_image**=**gcr.io/cloudrun/button&cloudshell_git_repo**=https://github.com/geshan/laravel6-on-google-cloud-run.git)**
    
    마지막 부분을 리셋 프로토콜의 HTTPs URL로 바꿉니다. 예를 들어 리셋 프로토콜이 https://github.com/ghaleroshan/laravel6-on-google-cloud-run 에 있는 경우 https://github.com/ghaleroshan/laravel6-on-google-cloud-run.git 에 있는 다음 커밋하고 푸시합니다.당신의 공관은 this처럼 보일 것입니다.

    9. 구글 클라우드에 배포 실행


    인출 요청(PR)을 통합한 후 재구매 페이지로 이동하여 "구글 클라우드에서 실행"단추를 누르십시오.
    재구매, 구글 클라우드 실행 버튼
    그 후에 구글 계정에 로그인하고 구글 클라우드에 프로젝트를 설치했다고 가정하고 "계속"을 누르세요.그럼, 너는 좀 기다려야 할 것 같다
  • 항목 선택 - 이 응용 프로그램을 배포할 항목 선택
  • 선택 영역 - 이 프로그램을 배치할 구역을 선택하십시오. 저는 보통 us-central-1
  • 을 선택합니다
  • 용기의 구축과 배치를 기다리면 다음 과정을 보실 수 있습니다.
  • Google Cloud Shell이 원활하면 HTTPs URL을 볼 수 있습니다. 클릭하면 Laravel 응용 프로그램이 다음과 같이 실행됩니다.
    Google cloud shell 배포 응용 프로그램 사용
    방금 일어난 일은:
  • 영역을 선택하면 스크립트가 repo
  • 의 Dockerfile에서 docker 용기 이미지를 구축합니다
  • 그리고 구축된 이미지를 전송Google Container Registry
  • CLI를 사용하여 구축된 이미지를 Cloud Run에 배치하고 URL을 반환합니다.
  • G클라우드 만세, 응용 프로그램이 실행 중입니다.


    URL을 입력하면 구글 클라우드에서 응용 프로그램이 실행되는 것을 볼 수 있습니다. 아래와 같습니다.
    Google Cloud Run에서 Laravel 6 실행
    다른 버전을 배치하려면 PR을 마스터에 통합한 다음 단추를 다시 눌러서 배치할 수 있습니다.

    구글 클라우드 운행에 대한 더 많은 정보


    곡가운의 운행은 매우 관대하다.Google cloud run에서 컨테이너화된 응용 프로그램이나 웹 응용 프로그램을 실행할 수 있습니다.나는 애완동물 프로젝트를 운영했는데 분당 약 1개의 요청을 받았기 때문에 어떤 비용도 지불할 필요가 없다.
    막후에서 그것은 pricingKnative를 사용한다.Kubernetes 그룹에서도 실행할 수 있지만, 확장할 수 있는 서버 없이 완전히 관리할 수 있는 프로그램을 전송하고 얻을 수 있다면, 누가 K8s 그룹을 관리할 것인가.

    쿠베르네트스 너무 길어서 읽을 수가 없어요.


    Google Cloud에서 Laravel 6를 실행하려면 다음 단계를 빠르게 수행합니다.
  • 로그인했는지 확인
  • (으)로 이동Google Cloud Account
  • "구글 클라우드에서 실행"파란색 단추 클릭
  • 항목 선택
  • 지역 선택
  • Laravel 응용 프로그램의 URL을 기다리고 얻으십시오. 아래와 같이 즐겨보세요!
  • https://github.com/geshan/laravel6-on-google-cloud-run Google cloud shell 배포 응용 프로그램 사용

    결론


    Google cloud run에서 Laravel 응용 프로그램을 실행하는 것은 매우 간단합니다.Github 작업을 사용하여 Github에서 테스트를 실행할 수도 있습니다.나는 이것이 도움이 되기를 바란다.CI/CD 방법을 사용하려면 이 점 을 검사할 수 있습니다. 이것은 클라우드로 구축된 배치를 보여 줍니다.동일한 컨테이너가 로컬 및 프로덕션(Google Cloud Run) 환경을 위해 실행 중이므로 새로운 프레임워크를 학습할 필요 없이 서버가 없습니다.모든 코드는 Github repo의 소스 코드입니다.

    Any containerized web app can be run on Google Cloud Run, it is a great service.


    2019년 10월 21일, 원재post.

    좋은 웹페이지 즐겨찾기