Halo semuanya! Untuk mengantisipasi dimulainya kursus "Framework Laravel" dan "Backend-developer dalam PHP" , kami terus berbagi materi menarik tentang topik tersebut. Ayo pergi.
Selama beberapa tahun terakhir, popularitas Laravel
telah meningkat secara dramatis . Komunitas Laravel bahkan berpendapat bahwa Laravel membuat proses bekerja dalam PHP lebih menyenangkan dibandingkan dengan rasa sakit yang sebelumnya. Laravel 6 memiliki beberapa
fitur baru yang
keren . Mendapatkan URL yang dapat ditingkatkan skalanya untuk aplikasi Anda membutuhkan waktu berjam-jam, jika tidak berhari-hari. Dan menciptakan sesuatu seperti Kubernetes adalah tugas yang menakutkan. Dalam kasus seperti itulah Google Cloud Run berada dalam cahaya terbaik, karena dengan itu Anda bisa mendapatkan URL HTTP yang berfungsi untuk semua aplikasi kontainer Anda dalam hitungan menit.
Google Cloud Run tidak memiliki server dan sepenuhnya dikelola oleh Google. Anda mendapatkan penskalaan super, pembayaran per detik, URL HTTPs, dan pemetaan domain Anda sendiri.
Jika Anda ingin menjalankan wadah stateless, Cloud run adalah cara termudah untuk melakukan ini. Pada artikel ini, saya akan menjelaskan secara rinci cara membuat aplikasi Laravel 6 Anda berjalan di Google cloud run dengan Continous Integration (CI).
Persyaratan yang Diperlukan
- Anda terbiasa dengan PHP / Komposer dan tahu tentang Laravel (saya pikir kalau tidak Anda tidak akan berada di sini);
- Anda tahu cara menggunakan Git dari konsol;
- Kode CI / CD Anda dihosting di GitHub dan Anda tahu cara menggunakannya;
- Anda terbiasa dengan Docker, bahkan mungkin dengan perakitan multi-tahap;
- Anda memiliki akun Google Cloud yang berfungsi (mereka memberi Anda pinjaman tanpa bunga $ 300 selama 1 tahun, tidak ada alasan untuk tidak memulainya).
Mengapa Cloud Run Sangat Bagus Untuk Pemula
Karena dua alasan, yang akan saya jelaskan di bawah:
- Anda akan belajar tentang praktik terbaik dan perangkat lunak seperti Docker dan CI / CD.
- Kerangka utama akan berfungsi setelah mengklik tombol, memilih dua hal dan lima menit menunggu, dan Anda bisa mendapatkan URL HTTP yang berfungsi. Seberapa mudah?
Langkah Penempatan
Berikut ini adalah panduan untuk mengatur dan menggunakan Laravel 6 di Cloud Run:
1. Klon Laravel atau proyek Laravel baruMulailah dengan mengkloning Laravel atau menggunakan komposer atau Laravel CLI, seperti yang ditunjukkan dalam panduan
instalasi resmi.
Saya menggunakan komposer untuk mendapatkan Laravel versi terbaru, seperti yang ditunjukkan di bawah ini:
composer global require laravel/installer
Saya menjalankan perintah berikut untuk mendapatkan Laravel versi terbaru:
composer create-project --prefer-dist laravel/laravel laravel6-on-google-cloud-run
2. Tes pertama secara lokalKemudian jalankan
cd laravel6-on-google-cloud-run
dan kemudian
php artisan serve
. Untuk melihat bahwa semuanya berfungsi, saya pergi ke alamat
http: // localhost: 8000 di browser dan berhasil untuk saya. Saya menginstal PHP 7.2 secara lokal.
3. Buat repositori baru di GitHubBuat repositori baru di GitHub seperti yang ditunjukkan di bawah ini:

4.
Tambahkan repositori dan READMESekarang setelah Anda membuat repositori, tambahkan ke salinan lokal Laravel dan tambahkan file README.
Untuk melakukan ini, jalankan perintah berikut di konsol:
git init code .
Setelah menjalankan perintah di repositori saya di GitHub, yang berikut ini muncul:
5. Tambahkan Laravel penuh, buka Tarik PermintaanSekarang mari kirim seluruh aplikasi sebagai permintaan tarik ke repositori GitHub dengan menjalankan perintah berikut:
Setelah itu, buka Permintaan Tarik di repositori, seperti
ini . Mungkin Anda berpikir mengapa saya memerlukan permintaan tarik jika saya mengerjakan proyek sendiri?
Well, well, saya pikir Anda harus selalu mengikuti pendekatan sistematis, bahkan jika Anda bekerja sendiri.
Setelah itu, perlambat permintaan tarik Anda.
6. Uji pengaturan dengan tindakan GitHubBukan bagian yang menyenangkan. Setelah Anda melakukan permintaan tarik, GitHub akan tahu bahwa ini adalah proyek Laravel. Klik pada tab
Tindakan di halaman repositori Anda dan Anda akan melihat sesuatu seperti yang ditunjukkan di bawah ini:

Klik
Atur alur kerja ini di bawah
Laravel , dan pada halaman berikutnya, klik tombol
Mulai komit di sudut kanan atas. Setelah itu, tambahkan pesan komit seperti yang ditunjukkan di bawah ini dan klik
Komit file baru .

Ini adalah bagaimana Anda mendapatkan instalasi CI Anda. Tes Laravel secara default sekarang akan berjalan pada setiap push git. Apakah ini sulit?
Terima kasih kepada Great Mind GitHub!
Tidak perlu lagi membuat file
.myCIname.yml
!
7. Tambahkan buruh pelabuhan dan jalankan komposisi buruh pelabuhan untuk menjalankan aplikasi secara lokalSekarang mari kita tambahkan buruh pelabuhan dan buatlah pembuat dok untuk menjalankan aplikasi secara lokal tanpa PHP atau
artisan .
Bagian tutorial ini terinspirasi oleh Laravel Nicolas di artikel
Google Cloud Run .
Jika Anda ingin tahu lebih banyak tentang
Docker dan Laravel, lihat
artikel ini .
Untuk memulai, jalankan perintah berikut untuk memperbarui cabang master, karena kami menambahkan file alur kerja baru menggunakan antarmuka GitHub:
git checkout master git fetch git pull --rebase origin master
Tambahkan kunci ke file
.env.example
, salin dari file
.env
, seperti yang ditunjukkan di bawah ini:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:DJkdj8L5Di3rUkUOwmBFCrr5dsIYU/s7s+W52ClI4AA= APP_DEBUG=true APP_URL=http:
Karena ini hanya demo, Anda dapat melakukannya, tetapi dalam aplikasi nyata, berhati-hatilah dengan rahasia. Untuk aplikasi yang siap produksi, nonaktifkan debug dan hal-hal lain yang berkaitan dengan pengembangan.
Tambahkan
Dockerfile seperti
itu ke root proyek:
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
Tambahkan file berikut ke
docker/000-default.conf
:
<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>
Setelah itu tambahkan
docker-compose.yml
:
version: '3' services: app: build: context: ./ volumes: - .:/var/www ports: - "8080:8080" environment: - APP_ENV=local
Mari kita kurangi semuanya menjadi hal utama.Jika Anda mencoba memahami semua yang ditulis di sini, itu bisa lengkap, jadi izinkan saya memberi tahu Anda tentang bagian utama:
- Kami menggunakan gambar docker PHP Apache resmi untuk menjalankan Laravel, ia memiliki PHP versi 7.3.
- Kami menggunakan multi-stage build untuk mendapatkan dependensi dengan Composer, dan kemudian menyalinnya ke gambar buruh pelabuhan utama, yang memiliki PHP 7.3 dan Apache.
- Karena Google Cloud Run mengharuskan server web untuk mendengarkan pada port 8080, kami menggunakan
000-default.conf
untuk mengonfigurasinya. - Untuk membuat docker-compose up lebih mudah dijalankan, masukkan hanya satu perintah docker-compose up.
- Sekarang setelah Anda membaca hingga saat ini, jalankan docker-compose dari root dan semuanya akan berfungsi di
http://localhost:8080
, dalam hal ini Anda akan memahami bahwa Laravel 6 berjalan secara lokal di Docker.
Di bawah ini Anda melihat output setelah menjalankan
docker-compose up
akhir:

Jika Anda memiliki Laravel yang bekerja dengan Docker, buka permintaan tarik baru (misalnya,
satu ) dan tambahkan Docker ke proyek Anda.
Saya menjalankan perintah berikut di root proyek sebelum membuka Permintaan Tarik:
git status
Anda akan mendapatkan sesuatu seperti ini:
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)
Dan jalankan perintah berikut:
git add . git commit -m "Add docker and docker compose" git push origin docker
Sebagai bonus, mereka akan menjalankan tes Laravel default setelah push, seperti yang terlihat di bawah ini:

Hanya pemilik repositori yang memiliki akses ke tab Tindakan, jadi orang lain tidak perlu mengetahui hasil pembuatan uji Anda
8. Tambahkan penyebaran ke tombol
Google Cloud .
Sekarang mari kita gunakan instalasi Laravel ini ke Google Cloud Run dengan cara sederhana. Pada tahap ini, diyakini bahwa Anda melakukan permintaan tarik dari cabang buruh pelabuhan.
Mari kita jalankan perintah berikut:
git checkout master git fetch git pull --rebase origin master git checkout -b cloud-run-button
Tambahkan berikut ini ke file
readme.md
Anda:
### Run on Google cloud run
[](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)
Ganti dengan hati-hati bagian terakhir dari URL HTTP repositori Anda, misalnya, jika repositori Anda berada di
alamat yang akan diubah, lalu komit dan
dorong .
Permintaan Tarik Anda akan terlihat seperti
ini .
9. Menyebarkan di Google Cloud RunSetelah penggabungan permintaan tarik Anda, buka halaman repositori dan klik tombol
Run on Google Cloud .

Setelah itu, jika Anda masuk ke akun Google Anda dan Anda memiliki pengaturan cloud Google dengan satu proyek, klik tombol "Lanjutkan". Anda mungkin harus menunggu sebentar, setelah ini:
- Pilih proyek - Pilih proyek untuk menggunakan aplikasi ini
Pilih satu daerah - Pilih satu daerah untuk menggunakan aplikasi ini, saya biasanya memilih kami-pusat-1
Kemudian tunggu wadah untuk mengumpulkan dan memperluas, proses dalam kasus saya terlihat seperti ini:
Jika semuanya berjalan dengan baik, maka pada Google Cloud Shell Anda akan melihat URL HTTP yang dapat Anda klik untuk melihat bahwa aplikasi Laravel Anda berjalan, seperti yang ditunjukkan di bawah ini:

Apa yang terjadi di atas adalah ini:
- Setelah memilih suatu wilayah, skrip membangun gambar wadah buruh pelabuhan dari Dockerfile di repositori;
- Dia kemudian mendorong gambar yang dikumpulkan ke dalam Google Container Registry;
- Setelah itu, menggunakan CLI gcloud, ia menyebarkan gambar yang telah dirakit ke Cloud Run, yang mengembalikan URL.
10. Hore! Aplikasi Anda berfungsi!Setelah Anda mendapatkan URL, Anda akan melihat aplikasi Anda berjalan di Google Cloud Run, seperti yang ditunjukkan di bawah ini:

Jika Anda ingin menggunakan versi yang berbeda, Anda dapat mengubah permintaan tarikan Anda menjadi master dan mengklik tombol lagi untuk penyebaran.
Lebih lanjut tentang Google Cloud Run
Harga untuk Google Cloud Run sangat murah hati. Anda dapat menjalankan aplikasi apa pun dalam sebuah wadah atau aplikasi web di Google Cloud Run.
Saya menjalankan proyek rumah yang menerima 1 permintaan per menit, dan saya tidak perlu membayar apa pun.
Di bawah tenda, ia menggunakan Knative dan Kubernetes. Itu juga dapat dijalankan di kluster Kubernetes Anda, tetapi siapa yang ingin mengelola kluster K8s jika Anda bisa mendorong dan mempelajari aplikasi serverless yang dikelola sepenuhnya yang dapat diskalakan
TLDR
Untuk meluncurkan Laravel 6 di Google Cloud Run dengan cepat, ikuti langkah-langkah ini:


Kesimpulan
Semoga menjalankan aplikasi Laravel di Google cloud run ternyata menjadi tugas yang mudah bagi Anda. Anda bahkan dapat menjalankan tes dengan tindakan Github. Saya harap artikel ini bermanfaat bagi Anda.
Untuk mengambil pendekatan CI / CD, Anda dapat membaca
artikel ini, yang membahas tentang penggunaan build di cloud. Karena wadah yang sama berfungsi secara lokal dan pada produksi (Google Cloud Run), Anda tidak perlu mempelajari kerangka kerja baru untuk beralih ke arsitektur tanpa server.
Aplikasi web apa pun dalam wadah dapat berjalan di Google Cloud Run, jadi saya menganggapnya sebagai layanan hebat!
Itu saja, dan kami mengingatkan Anda bahwa pada 21 dan 22 Januari setiap orang dapat mengunjungi intensif online gratis , dalam kerangka yang mana kami akan membuat bot Telegram untuk memesan kopi di tempat usaha dan membayar online. Anda dapat mendaftar untuk hari kedua intensif di sini .