Mengembangkan Aplikasi Poker Multiplayer dengan Docker dan Haskell

Mengembangkan Aplikasi Poker Multiplayer dengan Docker dan Haskell

Dalam artikel ini, kita akan membahas bagaimana mengembangkan aplikasi poker multiplayer dengan menggunakan teknologi Docker dan Haskell. Kami juga akan membahas beberapa masalah yang biasa terjadi ketika menggunakan Docker dan cara untuk menyelesaikan mereka.

Menggunakan Docker

Docker adalah platform kontainerisasi yang memungkinkan kita untuk membuat, berbagi, dan menjalankan aplikasi dalam bentuk isolasi. Dalam kasus ini, kita akan menggunakan Docker untuk mengembangkan aplikasi poker multiplayer dengan back-end yang ditulis dalam Haskell.

Pertama-tama, kita perlu mengunduh dan menginstal Docker pada komputer kita. Kemudian, kita dapat membuat sebuah container dengan nama "default" dan menyetelnya sebagai host 192.168.99.100.

Kita juga dapat menggunakan beberapa browser tabs untuk simulasikan beberapa pemain dalam satu game poker. Namun, perlu diingat bahwa setiap tab akan memiliki cache token akses yang sama, sehingga kita harus keluar dari masing-masing tab sebelum login.

Masalah Common Docker

Docker memiliki beberapa masalah common yang dapat terjadi ketika kita menggunakan teknologi ini. Salah satunya adalah error TLS setting yang dapat terjadi jika TLS version yang digunakan tidak sesuai.

Untuk menyelesaikan masalah ini, kita perlu mengatur environment variable COMPOSE_TLS_VERSION dengan nilai TLSv1_2.

Masalah lainnya adalah container yang kehabisan memori saat build. Dalam kasus ini, kita dapat meningkatkan memori VM dengan menggunakan perintah berikut:

docker-machine stop default
VBoxManage modifyvm default --memory 4096
docker-machine start default

Mengembangkan Aplikasi Poker Multiplayer

Untuk mengembangkan aplikasi poker multiplayer, kita perlu membuat sebuah back-end yang ditulis dalam Haskell. Kita dapat menggunakan compiler Haskell seperti ghc dan stack untuk mengkompilasi kode.

Kita juga perlu menginstal beberapa library tambahan seperti libpq (c bindings to postgres) dan redis.

Setelah selesai mengembangkan back-end, kita dapat menjalankan aplikasi dengan menggunakan perintah berikut:

export dbConnStr='host=0.0.0.0 port=5432 user=postgres dbname=pokerdbtest password=postgres
export secret="changeme077cf4e7441c32d2d0a86b4c"
redis-server & (background)
server --port 8000 --websocket-port 5000

Mengembangkan Front-End

Untuk mengembangkan front-end, kita perlu menginstal Node.js dengan versi 10.16.3 dan Yarn secara global.

Kita juga perlu menginstal sistem dependency untuk node-sass yaitu libpng-dev.

Setelah selesai mengembangkan front-end, kita dapat menjalankan aplikasi dengan menggunakan perintah berikut:

yarn start

Menjalankan Tes

Untuk menjalankan suite tes pada back-end, kita perlu menggunakan perintah berikut:

stack test

Kontribusi

Jika Anda ingin berkontribusi pada aplikasi ini, silakan baca issues yang tersedia dan buat issue baru dengan ide-ide tentang bagaimana Anda dapat bergabung.

Lisensi

Aplikasi ini adalah software bebas yang dirilis ke dalam domain publik. Jika Anda ingin mengetahui lebih lanjut tentang lisensi, silakan baca file UNLICENSE atau kunjungi unlicense.org.