Menjalankan phalcon framework menggunakan docker

Phalcon framework merupakan salah satu PHP extension framework tercepat yang ditulis menggunakan bahasa C. Memiliki arsitektur MVC seperti framework PHP populer lainnya seperti Laravel dan yii. Kecepatan eksekusinya mengalahkan beberapa framework terkenal seperti Laravel dan Yii.

Untuk memulai menggunakan phalcon framework kita perlu mengikuti langkah-langkah yang cukup rumit di https://docs.phalcon.io/3.4/en/installation. Disini kita akan mencoba untuk menjalankan phalcon di docker container.
Requirements
- docker
- docker-compose
- internet connection (of course)
Jika anda belum menginstall docker di komputer anda, silahkan mengunjungi https://docs.docker.com/get-started/.
Step 1: Membuat folder project
Buat folder kemudian masuk kedalam folder tersebut
mkdir phalcon_docker && cd phalcon docker
Step 2: Setup dockerfile & docker-compose
Buat file bernama docker-compose.yml
untuk membuat docker container dengan source code sebagai berikut:
#docker-compose.yml
version: '3'
services:
app:
container_name: app
build: .
working_dir: /var/www/html
volumes:
- ./:/var/www/html
ports:
- '8080:80'
expose:
- '8080'
Kemudian buat file Dockerfile
untuk menyimpan konfigurasi image yang akan kita buat dengan isi sebagai berikut
# a PHP image bundle with nginx
FROM webdevops/php-nginx:7.3
ARG PSR_VERSION=0.7.0
ARG PHALCON_VERSION=3.4.5
ARG PHALCON_EXT_PATH=php7/64bits
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=compose
RUN set -xe && \
# Download PSR, see https://github.com/jbboehr/php-psr
curl -LO https://github.com/jbboehr/php-psr/archive/v${PSR_VERSION}.tar.gz && \
tar xzf ${PWD}/v${PSR_VERSION}.tar.gz && \
# Download Phalcon
curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \
tar xzf ${PWD}/v${PHALCON_VERSION}.tar.gz && \
docker-php-ext-install -j $(getconf _NPROCESSORS_ONLN) \
${PWD}/php-psr-${PSR_VERSION} \
${PWD}/cphalcon-${PHALCON_VERSION}/build/${PHALCON_EXT_PATH} \
&& \
# Remove all temp files
rm -r \
${PWD}/v${PSR_VERSION}.tar.gz \
${PWD}/php-psr-${PSR_VERSION} \
${PWD}/v${PHALCON_VERSION}.tar.gz \
${PWD}/cphalcon-${PHALCON_VERSION} \
&& \
php -m
ENV WEB_DOCUMENT_ROOT=/var/www/html/application/public
Disini kita akan menggunakan image php webdevops
yang sudah satu paket dengan nginx
, jadi kita tidak perlu melakukan konfigurasi webserver untuk phalcon nantinya.
#struktur project kita saat ini
phalcon_docker
├── docker-compose.yml
└── Dockerfile
Step 3: Menjalankan Docker container
Setelah semua persiapan selesai, jalankan perintah berikut untuk menjalankan docker
docker-compose up -d
Docker-compose akan melakukan build dan menjalankan container kita
Container berisi php-phalcon sudah siap digunakan
Step 4: Membuat project phalcon
Kita akan menggunakan phalcon-devtools
untuk membuat project phalcon, sebelum itu kita lakukan inisialisasi project composer terlebih dahulu dengan cara:
docker-compose exec app composer init
Kemudian masukan data yang diminta

Composer akan membuat file bernama composer.json
. Kemudian kita install phalcon-devtools menggunakan command berikut
docker-compose exec app composer require --dev phalcon/devtools:"^3.4"
Karena kita menggunakan phalcon versi 3.4.5 kita akan akan menggunakan phalcon versi 3.4 juga dengan menambahkan :"^3.4"
Langkah terakhir, Membuat project phalcon menggunakan perintah berikut
docker-compose exec app ./vendor/bin/phalcon project application simple
Perintah diatas akan membut folder bernama application
yang berisi project phalcon kita

#Struktur folder kita menjadi
phalcon_docker
├── application
├── composer.json
├── composer.lock
├── docker-compose.yml
├── Dockerfile
└── vendor
Step 5: Akses aplikasi
Sesuai dengan konfigurasi di docker-compose.yml
aplikasi dapat diakses melalui http://localhost:8080

Hasil project ini dapat dilihat di https://github.com/raisoturu/phalcon-docker-example.
Sekian tutorial Menjalankan phalcon framework menggunakan docker container, semoga bermanfaat.