Hola a todos! En previsi贸n del inicio de los cursos "Framework Laravel" y "Backend-developer in PHP" , continuamos compartiendo material interesante sobre el tema. Vamos
En los 煤ltimos a帽os, la popularidad de Laravel
ha aumentado dram谩ticamente . La comunidad de Laravel es incluso de la opini贸n de que Laravel hizo que el proceso de trabajar en PHP sea m谩s agradable en comparaci贸n con el dolor que era antes. Laravel 6 tiene algunas
caracter铆sticas nuevas y
geniales . Obtener una URL de trabajo s煤per escalable para su aplicaci贸n lleva horas, si no d铆as. Y crear algo como Kubernetes es una tarea desalentadora. Es en tales casos que Google Cloud Run est谩 en la mejor luz, porque con 茅l puede obtener una URL HTTP de trabajo para cualquiera de sus aplicaciones de contenedor en minutos.
Google Cloud Run no tiene servidor y est谩 completamente administrado por Google. Obtiene s煤per escala, pago por segundo, URL de HTTP y su propia asignaci贸n de dominio.
Si desea ejecutar contenedores sin estado, Cloud Run es la forma m谩s sencilla de hacerlo. En este art铆culo, explicar茅 en detalle c贸mo hacer que su aplicaci贸n Laravel 6 se ejecute en la nube de Google con Integraci贸n Continua (CI).
Requerimientos Requeridos
- Est谩 familiarizado con PHP / Composer y sabe acerca de Laravel (creo que de lo contrario no estar铆a aqu铆);
- Sabes c贸mo usar Git desde la consola;
- Su c贸digo CI / CD est谩 alojado en GitHub y usted sabe c贸mo usarlo;
- Est谩 familiarizado con Docker, tal vez incluso con el ensamblaje de etapas m煤ltiples;
- Tiene una cuenta de Google Cloud en funcionamiento (le otorgan un pr茅stamo sin intereses de $ 300 por 1 a帽o, no hay raz贸n para no iniciarlo).
Por qu茅 Cloud Run es ideal para principiantes
Por dos razones, que describir茅 a continuaci贸n:
- Aprender谩 sobre las mejores pr谩cticas y el software, como Docker y CI / CD.
- El marco principal funcionar谩 despu茅s de hacer clic en un bot贸n, elegir dos cosas y cinco minutos de espera, y puede obtener una URL HTTP que funcione. Cuanto mas facil
Pasos de implementaci贸n
La siguiente es una gu铆a para configurar e implementar Laravel 6 en Cloud Run:
1. Clone Laravel o un nuevo proyecto de LaravelComience clonando Laravel o use el compositor o Laravel CLI, como se indica en la gu铆a de
instalaci贸n oficial.
Utilizo el compositor para obtener la 煤ltima versi贸n de Laravel, como se muestra a continuaci贸n:
composer global require laravel/installer
Ejecut茅 el siguiente comando para obtener la 煤ltima versi贸n de Laravel:
composer create-project --prefer-dist laravel/laravel laravel6-on-google-cloud-run
2. Primera prueba localLuego ejecute
cd laravel6-on-google-cloud-run
y luego
php artisan serve
. Para ver que todo funciona, fui a la direcci贸n
http: // localhost: 8000 en el navegador y funcion贸 para m铆. Ten铆a PHP 7.2 instalado localmente.
3. Crear un nuevo repositorio en GitHubCree un nuevo repositorio en GitHub como se muestra a continuaci贸n:

4.
Agregar repositorio y READMEAhora, despu茅s de haber creado el repositorio, agr茅guelo a la copia local de Laravel y agregue el archivo README.
Para hacer esto, ejecute los siguientes comandos en la consola:
git init code .
Despu茅s de ejecutar el comando en mi repositorio en GitHub, apareci贸 lo siguiente:
5. Agregue Laravel completo, abra la solicitud de extracci贸nAhora enviemos toda la aplicaci贸n como una solicitud de extracci贸n al repositorio de GitHub ejecutando los siguientes comandos:
Despu茅s de eso, abra la solicitud de extracci贸n en el repositorio, de
esta manera . 驴Quiz谩s piense por qu茅 necesito una solicitud de extracci贸n si estoy trabajando solo en un proyecto?
Bueno, bueno, creo que siempre debes seguir un enfoque sistem谩tico, incluso si trabajas solo.
Despu茅s de eso, ralentice su solicitud de extracci贸n.
6. Configuraci贸n de prueba con acciones de GitHubNo es la parte divertida. Despu茅s de agotar su solicitud de extracci贸n, GitHub sabr谩 que este es un proyecto de Laravel. Haga clic en la pesta帽a
Acciones en su p谩gina de repositorio y ver谩 algo como lo que se muestra a continuaci贸n:

Haga clic en
Configurar este flujo de trabajo en
Laravel , y en la p谩gina siguiente, haga clic en el bot贸n
Iniciar confirmaci贸n en la esquina superior derecha. Despu茅s de eso, agregue el mensaje de confirmaci贸n como se muestra a continuaci贸n y haga clic en
Confirmar nuevo archivo .

As铆 es como consigui贸 su instalaci贸n de CI. Las pruebas de Laravel por defecto ahora se ejecutar谩n en cada empuje de git. 驴Es dificil?
Gracias a Great Mind GitHub!
隆No m谩s crear archivos
.myCIname.yml
!
7. Agregue docker y ejecute docker-compose para ejecutar la aplicaci贸n localmenteAhora agreguemos Docker y hagamos Docker-compose para ejecutar la aplicaci贸n localmente sin PHP o
servicio artesanal .
Esta parte del tutorial est谩 inspirada en el art铆culo de Nicolas Laravel en
Google Cloud Run .
Si quieres saber m谩s sobre
Docker y Laravel, mira
este art铆culo .
Para comenzar, ejecute los siguientes comandos para actualizar la rama maestra, ya que agregamos un nuevo archivo de flujo de trabajo utilizando la interfaz GitHub:
git checkout master git fetch git pull --rebase origin master
Agregue la clave al archivo
.env.example
,
.env
archivo
.env
, como se muestra a continuaci贸n:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:DJkdj8L5Di3rUkUOwmBFCrr5dsIYU/s7s+W52ClI4AA= APP_DEBUG=true APP_URL=http:
Dado que esto es solo una demostraci贸n, puede hacerlo, pero en aplicaciones reales, tenga cuidado con los secretos. Para aplicaciones listas para producci贸n, deshabilite la depuraci贸n y otras cosas relacionadas con el desarrollo.
Agregue dicho
Dockerfile a la ra铆z del proyecto:
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
Agregue el siguiente archivo a
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>
Despu茅s de eso agrega
docker-compose.yml
:
version: '3' services: app: build: context: ./ volumes: - .:/var/www ports: - "8080:8080" environment: - APP_ENV=local
Reduzcamos todo a lo principal.Si est谩 tratando de entender todo lo escrito aqu铆, puede ser exhaustivo, as铆 que perm铆tame contarle sobre las partes principales:
- Utilizamos la imagen oficial de Docker Apache de PHP para ejecutar Laravel, tiene PHP versi贸n 7.3.
- Usamos una compilaci贸n de varias etapas para obtener dependencias con Composer, y luego las copiamos a la imagen principal del acoplador, que tiene PHP 7.3 y Apache.
- Dado que Google Cloud Run requiere que el servidor web escuche en el puerto 8080, usamos
000-default.conf
para configurar esto. - Para hacer que Docker-compose sea m谩s f谩cil de ejecutar, ingrese solo un comando docker-compose up.
- Ahora que ha le铆do hasta este punto, ejecute docker-compose desde la ra铆z y todo deber铆a funcionar en
http://localhost:8080
, en este caso comprender谩 que Laravel 6 se ejecuta localmente en Docker.
A continuaci贸n, ver谩 el resultado despu茅s de ejecutar
docker-compose up
el final:

Si tiene Laravel trabajando con Docker, abra una nueva solicitud de extracci贸n (por ejemplo,
una ) y agregue Docker a su proyecto.
Ejecut茅 los siguientes comandos en la ra铆z del proyecto antes de abrir la solicitud de extracci贸n:
git status
Obtendr谩s algo como esto:
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)
Y ejecuta los siguientes comandos:
git add . git commit -m "Add docker and docker compose" git push origin docker
Como beneficio adicional, ejecutar谩n la prueba predeterminada de Laravel despu茅s de la inserci贸n, como se ve a continuaci贸n:

Solo el propietario del repositorio tiene acceso a la pesta帽a Acciones, por lo que otras personas no necesitan conocer los resultados de sus compilaciones de prueba
8. Agregue una implementaci贸n al
bot贸n Google Cloud .
Ahora implementemos esta instalaci贸n de Laravel en Google Cloud Run de una manera simple. En esta etapa, se cree que organiz贸 su solicitud de extracci贸n desde la rama acoplable.
Ejecutemos los siguientes comandos:
git checkout master git fetch git pull --rebase origin master git checkout -b cloud-run-button
Agregue lo siguiente a su archivo
readme.md
:
### 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)
Reemplace cuidadosamente la 煤ltima parte de la URL HTTP de su repositorio, por ejemplo, si su repositorio est谩 ubicado en la
direcci贸n a la que cambiar谩, luego confirme y
presione .
Su solicitud de extracci贸n deber铆a verse as铆.
9. Implementar en Google Cloud RunDespu茅s de combinar su solicitud de extracci贸n, vaya a la p谩gina del repositorio y haga clic en el bot贸n
Ejecutar en Google Cloud .

Despu茅s de eso, si ha iniciado sesi贸n en su cuenta de Google y tiene la configuraci贸n de la nube de Google con un proyecto, haga clic en el bot贸n "Continuar". Puede que tenga que esperar un poco, despu茅s de esto:
- Elija un proyecto: elija un proyecto para implementar esta aplicaci贸n
Elija una regi贸n: elija una regi贸n para implementar esta aplicaci贸n, generalmente elijo us-central-1
Luego espere a que el contenedor se recopile y expanda, el proceso en mi caso se ve as铆:
Si todo va bien, en Google Cloud Shell ver谩 las URL de HTTP en las que puede hacer clic para ver que su aplicaci贸n Laravel se est谩 ejecutando, como se muestra a continuaci贸n:

Lo que sucedi贸 arriba es esto:
- Despu茅s de elegir una regi贸n, el script cre贸 una imagen del contenedor de Docker desde el Dockerfile en el repositorio;
- Luego introdujo la imagen ensamblada en el Registro de contenedores de Google;
- Despu茅s de eso, utilizando la CLI de gcloud, implementa la imagen ensamblada en Cloud Run, que devuelve la URL.
10. 隆Hurra! 隆Tu aplicaci贸n est谩 funcionando!Despu茅s de obtener la URL, ver谩 que su aplicaci贸n se ejecuta en Google Cloud Run, como se muestra a continuaci贸n:

Si desea implementar una versi贸n diferente, puede cambiar su solicitud de extracci贸n a maestra y hacer clic nuevamente en el bot贸n para la implementaci贸n.
M谩s informaci贸n sobre Google Cloud Run
Los precios de Google Cloud Run son muy generosos. Puede ejecutar cualquier aplicaci贸n en un contenedor o aplicaci贸n web en Google Cloud Run.
Ejecut茅 un proyecto de casa que recibi贸 1 solicitud por minuto, y no tuve que pagar nada.
Debajo del cap贸, usa Knative y Kubernetes. Tambi茅n se puede ejecutar en su cl煤ster de Kubernetes, pero qui茅n quiere administrar el cl煤ster de K8 si solo puede presionar y aprender una aplicaci贸n escalable sin servidor totalmente administrada
TLDR
Para iniciar Laravel 6 en Google Cloud Run r谩pidamente, siga estos pasos:


Conclusi贸n
Con suerte, ejecutar la aplicaci贸n Laravel en Google Cloud Run result贸 ser una tarea sencilla para usted. Incluso pudo ejecutar pruebas con acciones de Github. Espero que este art铆culo te haya sido 煤til.
Para adoptar el enfoque de CI / CD, puede leer este
art铆culo , que habla sobre el uso de compilaciones en la nube. Dado que el mismo contenedor funciona localmente y en producci贸n (Google Cloud Run), no necesita aprender un nuevo marco para cambiar a una arquitectura sin servidor.
Cualquier aplicaci贸n web en el contenedor puede ejecutarse en Google Cloud Run, 隆as铆 que lo considero un gran servicio!
Eso es todo, y le recordamos que el 21 y 22 de enero todos pueden visitar el intensivo en l铆nea gratuito , en el marco del cual crearemos un bot de Telegram para pedir caf茅 en el establecimiento y pagar en l铆nea. Puedes registrarte para el segundo d铆a de intensivo aqu铆 .