Docker dengan database localhost

  بِسْــــــــــــــــــمِ اللهِ الرَّحْمَنِ الرَّحِيْمِ

 

Alhamdulillah, wa shalaatu wa salaamu 'ala Rosulillah wa 'ala alihi wa shohbihi ajma'in. Sebelumnya jazaakumullahu khairan mas Abdul - Airbinder dan mas Ikhwan - Mandatech, jazakumullahu khairan katsiran atas insightnya, barakallahufiikum.

 

Case kali ini, kebetulan ada proyek next js yang error ketika hendak dijalankan di lokal mesin ana, karena glibc tidak mendukung, na'am ini bukan hendak membahas bagaimana cara mengatasi glibc tidak support di ubuntu 16.04, antum bisa merujuk di link ini (https://stackoverflow.com/a/851229/3206688), tapi di postingan ini membahas bagaimana aktifitas koding tetap jalan meski kekurangan dari sisi environment, barakallahufiikum.

 

Disini kita akan menggunakan docker, apa itu docker bisa merujuk ke official site nya (https://www.docker.com/use-cases) dan tulisan bagus milik pak Endy bisa di akses disini (https://software.endy.muhardin.com/devops/docker-workflow/), dan tambahan insight bermanfaat ketika pertama kali instalasi disini (https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04) barakallahufiikum.

 

Seperti yang dikatakan mas Abdul - Airbinder, memang ini tidak sesuai dengan use case docker sendiri, jadi ini sekedar catatan ana saja barangkali bermanfaat bagi yang lain, ahsanallahuilaikum.

 

Ala kulli hal, opsi yang ana pakai docker hanya di fungsikan sebagai virtual machine dengan docker pull image yang support dengan proyek nextjs. Database tetap di local ana (bawaan lampp) hanya saja project yang tadi di local, di mount ke container, dan pengeditan kode tetap di folder local.

 

1. Pull docker image (ana sendiri pakek yang terinstall node, silahkan cari image docker yang sesuai kebutuhan antum barakallahufiikum)

 

docker pull node

 

2. Lalu buat container sekaligus mount proyek di local (pastikan path local project nya benar) di mount ke docker dan tambahkan flags --net=host (ini supaya program yang di dalam docker terlihat sama cara akses nya seperti di localhost)

 

docker run -it --name my-project --net=host -v /lokal/path/ana/my-project:/var/my-project -d node

 

3. Untuk setting db berhubung memakai database local machine jadi tidak perlu perubahan (sesuai config masing-masing proyek antum barakallahufiikum) pastikan aja config atau .env sudah sesuai dengan credentials database di local machine nya. Kalau hendak install jadi satu di container project ini juga bisa atau beda container (pakek image mysql) juga bisa, tafadhal di browsing saja cara konekinnya.


4. Selanjutnya antum bisa start containernya dan masuk ke containernya dan jalankan proyeknya (dengan perintah npm, yarn, dll).

 

docker start my-project

 

docker exec -it my-project bash

Lalu masuk ke folder /var/my-project dan jalankan seperti biasa pakek perintah npm, yarn dll dan akses seperti antum mengakses proyek di localhost. Barakallahufiikum.

 

Note : 

sebelum pakai flag --net=host ana ngikutin beberapa tutorial yang binding port dan mount mysql.sock,dll yang menyebabkan phpmyadmin tidak bisa diakses dan mysql lampp tidak jalan, solusinya mengatasi phpmyadmin nya disini (https://forums.mysql.com/read.php?35,64808,254785#msg-254785


Demikian semoga yang singkat, padat akan manfaat, semoga Allah memberi kita tawfik.

 

اَللّٰهُ أَعْلَم‎

Share this:

Tidak ada komentar