Cara menggunakan php ini docker

Kalau sebelumnya untuk membuat Web Server di local kita menggunakan software-software seperti XAMPP, WAMP, Server2GO dan sebagainya. Kali ini kita akan membuat Web Server dengan Docker.

01. Apa sih Docker?

Docker adalah platform perangkat lunak yang memungkinkan Anda membuat, menguji, dan menerapkan aplikasi dengan cepat. Docker mengemas perangkat lunak ke dalam unit standar yang disebut kontainer yang memiliki semua yang diperlukan perangkat lunak agar dapat berfungsi termasuk pustaka, alat sistem, kode, dan waktu proses. Dengan menggunakan Docker, Anda dapat dengan cepat menerapkan dan menskalakan aplikasi ke lingkungan apa pun dan yakin bahwa kode Anda akan berjalan.

//aws.amazon.com/id/docker/

02. Kelebihan Docker dibandingkan dengan XAMPP, WAMP, dan sebagainya

  • Upgrade versi PHP dan Database serta install library lebih mudah (Configureable).
  • Karena Configureable, saat pindah-pindah komputer lain atau komputer kantor untuk development, tinggal copy konfigurasi Docker nya dan install (pastikan Docker sudah terinstall terlebih dahulu), hasilnya kita dapat mempunyai server local dengan konfigurasi yang sama dengan di komputer pribadi kita. Tidak perlu ribet install library sana-sini.
  • Bisa menyesuaikan Dev Environment dengan server production yang akan dipakai. Pada Docker, kita dapat menentukan OS yang akan dipakai ketika melakukan development.
  • Komputer lebih bersih dari file-file instalasi. Misalnya jika menggunakan Task Automation seperti Gulp, Grunt, dan sebagainya, dimana kita perlu install locally dulu dan file nya akan tertumpuk di komputer kita. Berbeda dengan Docker yang mana hanya diinstall di dalam setiap Container Docker saja tanpa perlu install di local komputer kita.

03. Install Docker
Silahkan mengunjungi web official Docker untuk mendownload software nya. //www.docker.com/get-started

04. Setup Dockerfile
Setelah Docker ter-install, Anda buat sebuah folder baru dan beri nama dengan “docker-php-dev” atau nama lainnya sesuai keinginan Anda.

Lalu buat file baru dengan nama “Dockerfile” (tanpa extension) di dalam folder tersebut. Setelah itu buka file “Dockerfile” tersebut dan ketik kode berikut.

FROM ubuntu:18.04 ENV DEBIAN_FRONTEND=noninteractive # Install Ruby RUN apt-get -y update && apt-get install -y ruby-full RUN ruby -v RUN gem -v # Install Utilities RUN apt-get install -y curl unzip build-essential nano wget mcrypt RUN apt-get -qq update && apt-get -qq -y install bzip2 RUN apt-get install -y chrpath libssl-dev libxft-dev RUN apt-get install -y libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev # Install ppa:ondrej/php PPA RUN apt-get install -y software-properties-common RUN add-apt-repository ppa:ondrej/php RUN apt-get update # Install PHP 8 RUN apt-get update && apt-get install -y apache2 RUN apt-get install -y php-pear libapache2-mod-php8.0 RUN apt-get install -y php8.0-common php8.0-cli RUN apt-get install -y php8.0-bz2 php8.0-zip php8.0-curl php8.0-gd php8.0-mysql php8.0-xml php8.0-dev php8.0-sqlite php8.0-mbstring php8.0-bcmath RUN php -v RUN php -m # PHP Config # Show PHP errors on development server. RUN sed -i -e 's/^error_reporting\s*=.*/error_reporting = E_ALL/' /etc/php/8.0/apache2/php.ini RUN sed -i -e 's/^display_errors\s*=.*/display_errors = On/' /etc/php/8.0/apache2/php.ini RUN sed -i -e 's/^zlib.output_compression\s*=.*/zlib.output_compression = Off/' /etc/php/8.0/apache2/php.ini RUN sed -i -e 's/^zpost_max_size\s*=.*/post_max_size = 32M/' /etc/php/8.0/apache2/php.ini RUN sed -i -e 's/^upload_max_filesize\s*=.*/upload_max_filesize = 32M/' /etc/php/8.0/apache2/php.ini # Apache Config # Allow .htaccess with RewriteEngine. RUN a2enmod rewrite # Without the following line we get "AH00558: apache2: Could not reliably determine the server's fully qualified domain name". RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf # Authorise .htaccess files. RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf # Ports EXPOSE 80 5000 # Start Apache2 on image start. CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"] # Purge old PHP RUN apt-get update RUN apt-get -y purge '^php7.4.*' RUN php -v # Install Git RUN apt-get install -y git RUN git --version # Install SASS & Compass RUN gem install sass RUN gem install compass RUN gem install css_parser # Install Composer RUN apt-get install -y php-cli RUN php -r "copy('//getcomposer.org/installer', 'composer-setup.php');" RUN HASH="$(wget -q -O - //composer.github.io/installer.sig)" && php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" RUN php composer-setup.php RUN php -r "unlink('composer-setup.php');" RUN mv composer.phar /usr/local/bin/composer # Install NodeJS & NPM RUN apt-get purge nodejs RUN curl -sL //deb.nodesource.com/setup_14.x | bash - RUN apt -y update RUN apt install -y nodejs RUN nodejs -v RUN npm -v # Install Task Automation RUN apt-get install -y yarn RUN npm install -g grunt-cli RUN npm install gulp-cli -g

Sebagai informasi, kita disini akan membuat Docker Image kita sendiri dengan menginstall software atau tools yang kita butuhkan. Bisa dilihat pada kode tersebut, OS yang digunakan adalah Ubuntu versi 18.04 dan PHP yang diinstall adalah PHP versi 8.0.

Selain itu saya juga menambahkan beberapa perintah untuk menginstall tools tambahan seperti Composer, SASS Compass, NodeJS (NPM) dan Git untuk membantu development aplikasi atau website. Dengan begitu, Anda juga dapat menambahkan atau mengurangi tools sesuai kebutuhan Anda sendiri.

Jika sudah, buka terminal Anda lalu arahkan ke folder “docker-php-dev” dan ketik kode berikut untuk membuat Docker Image dengan nama “docker-php-dev”.

docker build -t docker-php-dev .

Setelah itu Docker akan menginstall Image dari list perintah yang sudah dibuat pada file “Dockerfile”. Menginstall Docker Image akan membutuhkan waktu yang cukup lama karena akan mendownload file nya terlebih dahulu. Jadi pastikan komputer Anda memiliki koneksi internet yang memadai.

Jika sudah selesai, Anda dapat melihat list Docker Image dengan mengetik kode berikut di terminal Anda.

docker image ls

05. Setup docker-compose.yml
Langkah selanjutnya buat file baru dengan nama “docker-compose.yml” dan ketik kode berikut.

# Version version: '3.1' # Setup services: # PHP php: depends_on: - db image: docker-php-dev restart: always ports: - 5000:80 volumes: - ./development:/var/www/html # PHPMyAdmin phpmyadmin: depends_on: - db image: phpmyadmin/phpmyadmin restart: always ports: - 5050:80 environment: PMA_HOST: db # MySQL db: image: mysql:5.7 restart: always volumes: - wordpress_db:/var/lib/mysql environment: MYSQL_DATABASE: wordpress MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: password # Volumes volumes: wordpress_db: wordpress_uploads:

File tersebut digunakan untuk mengkonfigurasi Container. Jika sudah, ketik kode berikut pada terminal untuk menjalankan Docker Container.

docker-compose up -d

Setelah semua Container “up”, silahkan ketik URL //localhost:5000 pada browser Anda untuk membuka halaman Localhost dan ketik URL //localhost:5050 untuk membuka halaman PHPMyAdmin (MySQL Database Admin, username: root, password: password).

06. Buat Kode PHP Sederhana
Langkah selanjutnya adalah membuat sebuah kode PHP sederhana untuk melakukan test apakah Web Server sudah berhasil dijalankan. Pada folder “docker-php-dev” akan muncul folder baru dengan nama “development”. Anda bisa menaruh file PHP Anda di folder tersebut. Sebagai contoh, saya membuat folder dengan name “testing”.

Lalu, di dalam folder “testing” tersebut, saya membuat file baru dengan nama “index.php” dan mengisi dengan kode berikut.

<?php echo "Hello world!!"; ?>

Hasilnya seperti berikut.

Selamat Web Server telah siap digunakan. Untuk masuk ke dalam console Container, Anda dapat mengetik kode berikut.

docker exec -it docker-php-dev_php_1 bash

Di dalam Container, Anda dapat menjalankan perintah-perintah yang telah Anda install sebelumnya pada file “Dockerfile”. Sebagai contoh, saya dapat menjalankan perintah Composer, Gulp, Grunt dan sebagainya.

Sampai sini dulu artikel kali ini. Selamat bereksplorasi. Semoga bermanfaat.

Github Repo: //github.com/fachririyanto/docker-php
Featured Image: //sheershoff.ru/custom-php-ini-docker-php-docker-compose-config/

Postingan terbaru

LIHAT SEMUA