Deploy CodeIgniter 3 Menggunakan Docker
Sebuah web app berbasis CodeIgniter 3 harus dideploy, masalahnya web app tersebut membutuhkan PHP versi 5.6 yang repot untuk saya install di Ubuntu 18.04. Oleh karena itu saya menggunakan docker untuk mendeploy web app tersebut.
Source code web app terdapat pada folder myweb, berikut ini adalah konfigurasi yang harus dilakukan
Image juga dilengkapi dengan driver pdo dan pdo_pgsql karena web CI yang digunakan menggunakan database Postgresql. Apabila menggunakan DBMS lain, sesuaikan jenis drivernya.
Image akan mengaktifkan mod rewrite engine melalui perintah a2enmod rewrite, sehingga nanti tidak perlu menulis index.php ketika mengakses web CI yang dijalankan.
Perintah COPY myweb /var/www/html/myweb digunakan untuk menyalin isi folder myweb ke folder /var/www/html/myweb
Source code web app terdapat pada folder myweb, berikut ini adalah konfigurasi yang harus dilakukan
config.php
Ubah base_url di konfigurasi CI dengan mengedit file application/config/config.php. Ubah host dan port, misal di sini saya menggunakan port 8080 di localhost$config['base_url'] = 'http://localhost:8080/myweb
.htaccess
Selanjutnya edit file .htaccess di dalam folder myweb (source code web app) untuk mengakfitkan ewrite engine PHPOptions +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
Dockerfile
Buat file Dockerfile di luar folder myweb (source code web app CI) dengan isi sebagai berikutFROM php:5.6.38-apache RUN apt-get update && apt-get install -y libpq-dev && docker-php-ext-install pdo pdo_pgsql RUN a2enmod rewrite COPY myweb /var/www/html/mywebDockerfile tersebut akan digunakan untuk membuat image yang memuat PHP 5.6.38 + Apache web server.
Image juga dilengkapi dengan driver pdo dan pdo_pgsql karena web CI yang digunakan menggunakan database Postgresql. Apabila menggunakan DBMS lain, sesuaikan jenis drivernya.
Image akan mengaktifkan mod rewrite engine melalui perintah a2enmod rewrite, sehingga nanti tidak perlu menulis index.php ketika mengakses web CI yang dijalankan.
Perintah COPY myweb /var/www/html/myweb digunakan untuk menyalin isi folder myweb ke folder /var/www/html/myweb
Build docker image
Selanjutnya lakukan build docker image, masuk ke directory tempat Dockerfile berada kemudian eksekusi perintah berikutsudo docker build -t php5 .Docker image akan dibuild dengan nama php5
Menjalankan docker container
Jalankan docker container menggunakan perintah berikutsudo docker run --rm -p 8080:80 php5Buka web browser dan ketik localhost:8080 untuk mengakses web app
databasenya gimana pak?
ReplyDeletemasih di server terpisah, belum didocker-kan
DeleteBisa di docker juga om. Cuma pas running di tambahi -- link .
ReplyDeleteAtau bisa juga connect pake docker network..