Install Feeder PDDIKTI dengan Docker

Feeder PDDIKTI ada versi Linux nya, namun instalasinya ternyata lumayan sulit. Dengan Docker proses instalasi feeder menjadi lebih mudah karena tidak perlu mengikuti runtutan patch dan bebas dari masalah dependency. Bila ingin mengulang pun hanya perlu melakukan rebuild container, sehingga aplikasi feeder fresh kembali dan siap untuk di-refill.

Kesulitan yang saya alami saat pertama kali mencoba menginstall Feeder PDDIKTI versi linux nya adalah masalah dependency. Beberapa package tidak terdapat pada file installernya sehingga saya melakukan percobaan berulang kali untuk mengetahui package yang kurang.

Setelah berhasil menginstall versi linuxnya saya putuskan untuk membuat Docker image agar dapat mudah untuk digunakan berulang kali (sekalian belajar Docker).

Berikut cara untuk menggunakan Feeder PDDIKTI di dalam docker:

Install Docker

Buka website Docker, kemudian install docker sesuai sistem operasi anda. Bila anda menggunakan Windows atau Mac gunakan Docker Desktop.

Bila anda pengguna Linux, Gunakan Docker Engine atau anda bisa menginstall dari repository masing masing distro.

Download File Docker Compose

File docker-compose isinya kurang lebih seperti dibawah ini:

version: '3.0'
services:
  pddikti_feeder:
  image: kadekjayak/feeder-pddikti:4.0
  ports:
    - "8082:8082"
  volumes:
    - ./prefill:/home/prefill

Docker compose merupakan tool yang memudahkan konfigurasi docker container. Contoh file tersebut juga dapat anda download disini: feeder-pddikti-docker.

Pada file contoh tersebut terdapat 2 buah file yang mungkin perlu anda ketahui:

  • docker-compose.yml
    File ini berisi definisi tentang image feeder pddikti yang digunakan. Pada file contoh tersebut anda akan menggunakan docker image yang sudah saya buat sebelumnya.
    Anda dapat menentukan versi feeder yang akan digunakan pada file tersebut.
  • Folder prefill
    letakkan file prefill anda pada folder ini

Jalankan Feeder PDDIKTI

Gunakan perintah dibawah ini untuk menjalankan container tersebut.

docker-compose up -d

Docker akan mendownload file image yang ukuran nya cukup besar ketika pertama kali dijalankan. Proses tersebut akan memerlukan waktu yang cukup lama.

Downloading Docker Image
Proses Download Docker Image

Setelah container berhasil dijalankan, buka browser seperti biasa di alamat http://localhost:8082 dan lakukan pengisian data awal atau prefill.

Bila anda ingin install ulang atau mengulang dari feeder yang masih kosong, gunakan perintah dibawah ini untuk melakukan rebuild container:

docker-compose up -d --force-recreate

Kendala

Dalam instalasi dan konfigurasi Feeder PDDIKTI di dalam docker ini saya menemukan beberapa kendala, antara lain:

Data Tidak Ditemukan

Kendala yang saya alami ketika akan melakukan pengisian data prefill adalah muncul pesan Data Tidak Ditemukan. Cukup lama saya terhenti karena masalah ini. Ternyata Hal ini bisa diakibatkan oleh file prefill yang corrupt. Cobalah Download ulang file tersebut dan cek integritas file nya dengan tools md5. Bila file baru yang anda download hash nya berbeda, kemungkinan file sebelum nya corrupt.

apabila sudah didownload ulang namun tidak ada perubahan, cobalah menyesuaikan permission pada folder prefill, apabila anda pengguna Linux atau Mac osx jalankan perintah dibawah ini:

chmod a+rwx -R ./prefill

WebService: sandbox2.php hilang

Pada versi 3.2 file webservice sandbox2.php yang merupakan REST API json menghilang. Namun file tetap ada bila anda menginstall patch dari versi 2.3. Solusinya dapat langsung meng-copy file tersebut dari file feeder lama ke feeder baru.

Dockerfile

Bagi yang ingin membuat docker imagenya sendiri, berikut adalah Dockerfile yang saya gunakan.

FROM debian:9.11
MAINTAINER Kadek Jayak <[email protected]>

ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=en_US.UTF-8 

# Install Dependencies
RUN apt-get update && apt-get install -y -q --no-install-recommends \
        apt-transport-https \
        build-essential \
        ca-certificates \
        curl \
        git \
        libssl-dev \
        wget \
        zip \
    manpages \
        unzip \ 
    lsb-release \
    netbase \
    procps \
    libcurl3 \
    ucf \
    libedit2 \
    libx11-6\
    libpng16-16 \
    php-common \
    locales \
    libmagic1 \
    libfreetype6 \
    libfontconfig1 \
    libgd3 \
    libxml2 

RUN locale-gen && localedef -i en_US -f UTF-8 en_US.UTF-8

# COPY INSTALLER
WORKDIR /usr/src/app
COPY ./installer ./installer

# INSTALL FEEDER 3.2
WORKDIR /usr/src/app/installer/3.2
RUN chmod +x ./INSTALL && ./INSTALL

# INSTALL PATCH 3.3
WORKDIR /usr/src/app/installer/patch-3.3
RUN chmod +x ./UPDATE_PATCH.3.3 && ./UPDATE_PATCH.3.3

# INSTALL PATCH 3.4
WORKDIR /usr/src/app/installer/patch-3.4
RUN chmod +x ./UPDATE_PATCH.3.4 && ./UPDATE_PATCH.3.4

# INSTALL PATCH 4.0
WORKDIR /usr/src/app/installer/patch-4.0
RUN chmod +x ./UPDATE_PATCH.4.0 && ./UPDATE_PATCH.4.0

# Additional Files
WORKDIR /usr/src/app/installer/additional
RUN cp ws/sandbox2.php /var/www/html/ws/

CMD service apache2 start && /etc/init.d/postgresql start && tail -f /var/log/lastlog
Seorang Web Developer di Denpasar Bali. Nulis blog hanya sekedar iseng dan berbagi pengalaman.

Eksplorasi konten lain dari Kadek Jayak

Langganan sekarang agar bisa terus membaca dan mendapatkan akses ke semua arsip.

Lanjutkan membaca