Ask Cara Deploy Laravel, Codeigniter dan Framework PHP Lainnya di Docker AdityaDees - AdityaDees

Hot

https://publishers.chitika.com/

Contact us for advertising.

13 December 2021

Ask Cara Deploy Laravel, Codeigniter dan Framework PHP Lainnya di Docker AdityaDees

Cara Deploy Laravel, Codeigniter dan Framework PHP Lainnya di Docker
Bismillah…
Beberapa tahun belakangan kita tentu sering mendengar istilah docker dan kontainerisasi. Nah pada tulisan saya kali ini kita akan langsung mempraktekkan bagaimana cara men-deploy atau memasang website yang sebelumnya sudah kita buat kedalam sebuah container. Sebelum memulai, ada baiknya kita mengerti terlebih dahulu apa itu container dan apa itu docker.
  • Container
  • Container yang dimaksud disini merupakan wadah yang digunakan untuk menempatkan seluruh kebutuhan aplikasi baik itu web server, database ataupun kebutuhan lainnya yang dibutuhkan oleh aplikasi kita tadi supaya bisa berjalan layaknya di komputer lokal.

  • Docker
  • Docker merupakan salah satu platform yang bisa digunakan sebagai container/wadah untuk menempatkan seluruh kebutuhan software yang kita butuhkan. Docker seperti halnya sebuah VM yang berjalan di mesin virtual, hanya saja docker lebih ringan daripada VM yang membutuhkan resource lebih besar daripada docker.

    Dengan menggunakan docker, kita bebas memilih versi bahasa pemrograman, database, library dan software lainnya tanpa khawatir terjadi bentrok antara 1 aplikasi dengan aplikasi lainnya, karena docker bersifat isolate dimana konfigurasi sebuah project anda tidak akan mengganggu konfigurasi dan kebutuhan project yang lain.

    Misalnya saya memiliki 2 buah project, dimana project 1 menggunakan php versi 7.4 sedangkan project kedua menggunakan php versi 8.0 maka antara 2 project tersebut tidak mungkin terjadi bentok karena masing-masing project sudah memiliki container dan konfigurasi terisolasi masing-masing.

Nah, setelah mengetahui pengertian diatas, sekarang kita akan memulai untuk proses deploy. Disini saya akan men-deploy sebuah project aplikasi web dengan bahasa pemrograman php dimana aplikasi ini menggunakan nginx sebagai web server dan MySQL sebagai database. Kita akan lakukan konfigurasi di file tersendiri untuk masing-masing tools tersebut. Untuk php dan nginx disini saya menggunakan varian alpine linux, karena image docker dari alpine ini paling ringan dan paling kecil untuk ukuran filenya dibandingkan dengan image lainnya.

Berikut adalah langkah-langkah untuk melakukan deploy website ke docker :
  1. Didalam project website anda, buat sebuah direktori/folder bernama docker-config kemudian tambahkan lagi didalamnya direktori mysql, nginx dan php seperti berikut ini:
  2. Deploy php ke docker
  3. Didalam direktori mysql, buat sebuah direktori baru dengan nama db. Kemudian tempatkan di dalam direktori db ini database dari website yang anda buat sebelumnya.
  4. Selanjutnya beralih ke direktori nginx, buat sebuah file docker dengan nama web.dockerfile. Kemudian masukkan konfigurasi seperti dibawah ini didalam file tersebut :
  5. FROM nginx:1.21.4-alpine

    ADD ./docker-config/nginx/vhost.conf /etc/nginx/conf.d/default.conf
  6. Masih di direktori yang sama, tambahkan lagi sebuah file vhost.conf, dimana file ini berisi konfigurasi untuk nginx.
  7. server {
    listen 80;
    index index.php index.html;
    root /var/www/public/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;
    }
    }
  8. Beralih ke direktori php yang sudah dibuat sebelumnya, buat sebuah file php.dockerfile, lalu masukkan konfigurasi seperti dibawah ini :
  9. FROM php:8.0.5-fpm-alpine

    RUN docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-enable pdo_mysql
  10. Selanjutnya kembali ke direktori awal project. Lalu buat sebuah file docker-compose.yml. Didalam file inilah kita akan mendeklarasikan seluruh kebutuhan guna menjalankan website kita tadi.
  11. version: '3'
    services:
    web:
    build:
    context: ./
    dockerfile: ./docker-config/nginx/web.dockerfile
    container_name: inventory-webserver
    volumes:
    - ./:/var/www/public
    ports:
    - "8080:80"
    networks:
    - app-network

    app:
    build:
    context: ./
    dockerfile: ./docker-config/php/php.dockerfile
    container_name: inventory
    volumes:
    - ./:/var/www/public
    networks:
    - app-network
    links:
    - database
    depends_on:
    - database

    database:
    image: mariadb
    container_name: inventory_database
    restart: unless-stopped
    tty: true
    ports:
    - "3307:3306"
    environment:
    MYSQL_DATABASE: inventory_sample
    MYSQL_ROOT_PASSWORD: 12345
    SERVICE_NAME: mysql
    SERVICE_TAGS: dev
    volumes:
    - dbdata:/var/lib/mysql/
    - ./docker-config/mysql/db:/docker-entrypoint-initdb.d
    networks:
    - app-network

    networks:
    app-network:
    driver: bridge
    volumes:
    dbdata:
    driver: local
  12. Setelah seluruh file tersebut dibuat, jalankan docker-compose di terminal/command line anda dengan perintah :
  13. docker-compose up
  14. Tunggu hingga proses selesai, dan jalankan website anda di http://localhost:8080
Demikianlah tutorial cara deploy laravel, codeigniter dan framework PHP lainnya di docker. 

No comments:

Post a Comment

Komentar yang bermutu Insyaallah akan mendapatkan berkah

https://payclick.com/

Contact us for advertising.