Menjalankan Aplikasi Laravel di Google Cloud Shell

Google Cloud Shell ini bisa dijadikan playground menjalankan aplikasi kalian di sebuah lingkungan cloud. Apa berbagai macam bahasa pemrograman yang didukung oleh platform ini, seperti nodejs, python, php, dan bahkan flutter.

Sayangnya, versi PHP yang terpasang di Cloud Shell ini adalah versi yang sudah usang. Ini membuat project Laravel kalian seringnya mengalami error yang membuat hari kalian terbuang sia-sia. Melakukan downgrade juga bukan solusi yang bijak.

Untungnya, Cloud Shell ini juga sudah terpasang Docker yang membuat aplikasi apapun tidak terbatas dari bawaan bahasa yang sudah tersedia. Berikut contoh Dockerfile khusus untuk project Laravel.

FROM ubuntu:latest

WORKDIR /var/www

ARG DEBIAN_FRONTEND noninteractive

RUN apt update

RUN apt install -y software-properties-common \
	curl \
	zip \
	unzip

RUN apt install -y php-cli \
	php-fpm \
	php-sqlite3 \
	php-gd \
	php-curl \
	php-imap \
	php-mbstring \
	php-xml \
	php-zip \
	php-bcmath \
	php-soap \
	php-intl \
	php-readline \
	php-ldap \
	php-msgpack \
	php-igbinary \
	php-redis \
	php-memcached \
	php-pcov \
	php-imagick \
	php-xdebug

RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
RUN apt update && apt install -y nodejs

RUN apt clean && rm -rf /var/lib/apt/lists/*

RUN curl -sLS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer

COPY . .
RUN cp .env.example .env

RUN composer install --optimize-autoloader

RUN php artisan key:generate
RUN php artisan migrate --seed --force

RUN npm install
RUN npm run build

EXPOSE 8000

CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"]

Untuk sekedar mencoba, kalian bisa melakukan cloning aplikasi yang kubuat:

git clone https://github.com/ronsen/laravel-svelte-starter.git
cd laravel-svelte-starter
docker build -t laravel-svelte-starter .
docker run -p 8000:8000 -d laravel-svelte-starter

Buka tautan berikut di peramban web untuk mengakses aplikasi tersebut:

https://shell.cloud.google.com/devshell/proxy?authuser=0&port=8000&environment_id=default
Connect with me:

Comments

Spammy comment will be deleted. Markdown syntax is supported.