Konfigurasi Docker Untuk Laravel

 

Docker adalah sebuah aplikasi yang bersifat open source yang berfungsi sebagai wadah/container untuk mengepak/memasukkan sebuah software secara lengkap beserta semua hal lainnya yang dibutuhkan oleh software tersebut dapat berfungsi.

Jadi dengan docker kita sudah tidak perlu memakai xampp lagi, karena sudah tersedia web server dan database di dalam container docker. Langsung saja kita mulai proses konfigurasi docker untuk laravel.

1. Install Laravel

Untuk menginstal laravel ketikkan perintah

$ composer create-project — prefer-dist laravel/laravel namaProject

2. Konfigurasi Docker

setelah laravel berhasil di install. Saatnya menambahkan 4 file di dalam project laravel yang sudah kita install tadi. Di sini saya anggap kita sudah menginstal docker. Jika belum silahkan di install terlebih dahulu https://www.docker.com/

File yang perlu kita tambahkan adalah

  1. app.dockerfile
FROM php:7.1.19-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install mcrypt pdo_mysql

WORKDIR /var/www

2. web.dockerfile

FROM nginx:1.10

ADD ./vhost.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www

3. vhost.conf

server {
listen 80;
index index.php index.html;
root /var/www/public;

location / {
try_files $uri /index.php?$args;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}

4. docker-compose.yml

version: '2'
services:
web:
build:
context: ./
dockerfile: web.dockerfile
volumes:
- ./:/var/www
ports:
- "80:80"
links:
- app

app:
build:
context: ./
dockerfile: app.dockerfile
volumes:
- ./:/var/www
links:
- database
environment:
- "DB_PORT=3306"
- "DB_HOST=database"

database:
image: mysql:5.6
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: LaravelDocker
ports:
- "3306:3306"

phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_ARBITRARY: 1
MYSQL_USER: root
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: root
ports:
- "8080:80"
links:
# for mysql container
- "database:database"

jadi struktur foldernya akan menjadi seperti ini

setelah itu ketikkan perintah

$ docker-compose up -d

perintah tersebut akan mendownload container dari web server dan database yang sudah di tambahkan di file dokcer-compose.yml tadi. Jika sudah terdownload akan terstart sendiri

lalu ketikkan perintah

$ docker ps

terlihat webserver dan database sudah berjalan. lalu kita cek di browser apakah laravel kita sudah berjalan atau belum dengan menggunakan url http://localhost/

setelah itu buka .env untuk melakukan setting database

lalu ketikkan perintah

$ php artisan migrate

jika tidak terjadi error, maka kita sudah berhasil konek ke database.

lalu kita akan mencoba melakukan insert data ke database dan menampilkannya dalam bentuk json. buka file web.php dan tuliskan beberapa baris code berikut

lalu http://localhost/insert paste url tersebut di browser, jika berhasil data akan muncul

Lalu buka phpmyadmin dengan phpmyadmin dengan user sesuai .env yang sudah di setting

sekian dari saya, jika ada salah tolong di benarkan di komentar. Terimakasih~

Referensi

https://www.dewaweb.com/blog/tutorial-docker-dalam-bahasa-indonesia/

https://kyleferg.com/laravel-development-with-docker/

Comments

Popular posts from this blog

Cloud Computing Deployment Models: Technical know how.

Laravel eloquent Lazy Vs. Eager Loaded