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.
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
keren tutorialnya bang apakah ini akan selalu abang update ketika feeder dari pddikti melakukan update terbaru?
Akan saya update kalo sempat 😁
Gan setelah ikuti petunjuk nya kok ga otomatis dir prefill masuk di home.. klo buat sendiri malah ga kebaca dari feedernya
Pake docker-compose kan?
Kan ada setingan ./prefill:/home/prefill
Itu harusnya ud masuk ke docker instance nya.
Iyya bang pakai docker-compose up -d.. saya lihat di .yml nya ga gitu bang ./prefill:/home/prefill, ini dari yml /home/prefill:/home/prefill
Kalo volume nya /home/prefill:/home/prefill berarti perlu dibuatin folder di directory /home/prefill os nya. Kemudian coba restart container nya..
hehehe ternyata ga bisa di vps ya gan, entah kenapa dockernya ga bisa baca dir vps
Mungkin folder permission nya om?
Bener mas ternyata di file access nya.. pantesan dari kemarin ga bisa- bisa.. terimakasih banyak gan.. btw gan boleh bagi tutorial buat image feedernya ga?
Boleh nanti source Docker filenya saya pasang di github…
Kalau ada yang sudah tidak sabar nunggu update dari bli Kadek Jayak ini solusi install patch 4.0 yg pakai docker ini, server menggunakan vps linux
1. download patch terbaru
2. Extract kedalam Folder PATCH_4.0_Amd64_Linux
3. setelah itu buka winscp upload folder yg tadi ke /home/
4. Ubah permissionnya menjadi 755
5. lalu jalankan command berikut di mesin linux saudara-saudara
docker cp /home/Patch_4.0_Amd64_Linux/source_patch4.0.7z d0f84ccbfd747a5aa84239640366b698f7de790dcca7c8c89461a08128798aec:/usr/src/app/
docker cp /home/Patch_4.0_Amd64_Linux/UPDATE_PATCH.4.0 d0f84ccbfd747a5aa84239640366b698f7de790dcca7c8c89461a08128798aec:/usr/src/app/
6. pada console container selanjutnya ketik command
./UPDATE_PATCH.4.0
selesai
yup terima kasih sudah komen, image versi 4 sudah saya upload. Dockerfile saya sertakan di artikel agar yang lain dapat membuat docker imagenya sendiri…
d0f84ccbfd747a5aa84239640366b698f7de790dcca7c8c89461a08128798aec ganti dengan container id yang terinstall docker image feeder-pddikti
Permission/file access yang proper apa ya gan? user, group dan permissionnya. Saya coba tetap ada keterangan “File prefill tidak ada” padahal ada cek langsung ke terminal containernya.
file prefilnya di taruh di dalam folder prefill di sebelah file docker-compose.yml pak.
kalo masih pesan “File prefill tidak ada” tapi di dalam container sudah ada mungkin file prefillnya corrupt pak.
Mas kadek waktu generate prefill sudah sampai 10% terus ada pesan tidak terkoneksi dengan database itu knapa ya ?
ko saya pass di build docker filenya ada error
Step 8/19 : COPY ./installer ./installer
COPY failed: file not found in build context or excluded by .dockerignore: stat installer: file does not exist
File installer & patch feeder nya pastikan sudah ada di folder ./installer,
installer nya bisa di download di website feeder pddikti
selamat siang mas kadek, jika terdapat error chmod: cannot access ‘./INSTALL’: No such file or directory
The command ‘/bin/sh -c chmod +x ./INSTALL && ./INSTALL’ returned a non-zero code: 1 penyebabnya apa ya? mohon info karena baru mencoba dockerfilenya.
File installer & patch nya mas, pastikan sudah ada semua di folder installer
terima kasih mas sudah bisa, namun muncul error ketika isi prefill padahal prefillnya sudah ada, apakah termasuk file corupt?
bisa jadi file prefill nya corrupt mas, coba aja di download ulang dengan koneksi internet yang stabil…
Prefill tidak jalan, tapi tidak ada keterangan error, prefillnya sudah saya coba di feeder windows sukses
kalau jalan di Linux coba file prefill nya di chmod mbak
chmod a+rwx -R ./prefill