구글 클라우드에 Laravel 6를 설정하고 지속적인 통합을 통해 단계적으로 실행(CI)
14344 단어 cloudrunlaravelphpserverless
Google Cloud Run는 서버가 없고 완전히 구글이 관리합니다. 초대량, 초당 요금 계산, HTTPs URL과 당신의 도메인 맵을 얻을 수 있습니다.무상태 용기를 실행하려면구름 운행은 의심할 여지없이 가장 간단한 방법이다.이 글에서 나는 당신의 Laravel6 응용 프로그램을 구글 클라우드에서 실행하고 지속적인 통합(CI)을 하는 방법을 상세하게 소개할 것입니다.
선결 조건
왜 Cloud Run이 초보자에게 가장 좋은 선택인지.
다음과 같은 두 가지 원인에서 비롯되다
배치 절차
다음은 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
주요 문제로 귀결되다
만약 당신이 이곳의 모든 것을 이해해 보려고 한다면, 그것은 아마도 압도적일 것이다. 나는 주요 부분을 요약해 보겠다.
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)을 통합한 후 재구매 페이지로 이동하여 "구글 클라우드에서 실행"단추를 누르십시오.
재구매, 구글 클라우드 실행 버튼
그 후에 구글 계정에 로그인하고 구글 클라우드에 프로젝트를 설치했다고 가정하고 "계속"을 누르세요.그럼, 너는 좀 기다려야 할 것 같다
Google cloud shell 배포 응용 프로그램 사용
방금 일어난 일은:
G클라우드 만세, 응용 프로그램이 실행 중입니다.
URL을 입력하면 구글 클라우드에서 응용 프로그램이 실행되는 것을 볼 수 있습니다. 아래와 같습니다.
Google Cloud Run에서 Laravel 6 실행
다른 버전을 배치하려면 PR을 마스터에 통합한 다음 단추를 다시 눌러서 배치할 수 있습니다.
구글 클라우드 운행에 대한 더 많은 정보
곡가운의 운행은 매우 관대하다.Google cloud run에서 컨테이너화된 응용 프로그램이나 웹 응용 프로그램을 실행할 수 있습니다.나는 애완동물 프로젝트를 운영했는데 분당 약 1개의 요청을 받았기 때문에 어떤 비용도 지불할 필요가 없다.
막후에서 그것은 pricing와Knative를 사용한다.Kubernetes 그룹에서도 실행할 수 있지만, 확장할 수 있는 서버 없이 완전히 관리할 수 있는 프로그램을 전송하고 얻을 수 있다면, 누가 K8s 그룹을 관리할 것인가.
쿠베르네트스 너무 길어서 읽을 수가 없어요.
Google Cloud에서 Laravel 6를 실행하려면 다음 단계를 빠르게 수행합니다.
결론
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.
Reference
이 문제에 관하여(구글 클라우드에 Laravel 6를 설정하고 지속적인 통합을 통해 단계적으로 실행(CI)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/geshan/set-up-laravel-6-on-google-cloud-run-step-by-step-with-continuous-integration-ci-3ilo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)