วิธีการ deploy Phoenix App ด้วย Fly.io
เนื่องจากช่วงนี้ไปลอง Tutorial เกี่ยวกับ Elixir + Phoenix เพราะเห็นตัว LiveView แล้วน่าสนใจ ทีนี้ก็ติดปัญหา ว่าจะหา Hosting ที่เอาไว้ deploy แบบง่ายๆ ที่ไหนดีนะ? ไม่อยากใช้ VPS หรือต้อง setting อะไรยุ่งยาก ถ้าเป็นไปได้ Deploy docker file หรือรองรับ CI/CD ผ่าน git ก็เลยไปเจอตัว Fly.io ครับ วันนี้ก็เลยเขียนสรุปบันทึกเอาไว้ซักหน่อย
บทความผมฝึกเขียนเป็นภาษาอังกฤษไว้หลายเดือนแล้ว ภาษาไทย draft ไว้ไม่ได้โพสซักที 😅
ส่วน Reference ก็อ้างอิงจากบทความของ fly.io เลย
ติดตั้ง flyctl
ถ้าใช้ Mac OS และมี Homebrew ก็ติดตั้งง่ายๆ ด้วยคำสั่ง:
หรือจะรันด้วย script ผ่าน terminal:
การ login ก็ทำผ่าน cli ได้เลย
สร้าง Phoenix App
ตัวอย่าง สร้าง Phoenix App ขึ้นมาแบบง่ายๆ ไม่เอา email, dashboard, translation และก็ ecto (database)
เรา deploy ไป fly.io ด้วยคำสั่ง
โดยตัว fly ก็จะถามคำถามนิดๆหน่อยๆ
- เลือก development region
- ถามว่าจะ setting Postgresql หรือ Redis หรือไม่?
- จะ deploy เลยมั้ย? ตอนนี้ยังก่อน
- กำหนด secret key (
SECRET_KEY_BASE
)
เมื่อเราตั้งค่า config เสร็จ เราจะได้ไฟล์ fly.toml เป็นเหมือน metadata / configuration ไฟล์สำหรับ fly.io ที่ให้รู้ว่า project อะไร กำหนดอะไรอย่างไรบ้าง
Deploy App
ก่อนที่เราจะ deploy เราต้องทำการ generate secret key โดยวิธีนี้ใช้การ gen จาก method ที่ Phoenix มีให้
กำหนด secret variable ให้กับ fly.io
สุดท้าย deploy ด้วยคำสั่ง:
เพียงเท่านี้ ก็มีแอพ Phoenix ง่ายๆ ไว้ลองเล่นแล้ว
Happy Coding ❤️
References
- Authors
-
Chai Phonbopit
เป็น Web Dev ในบริษัทแห่งหนึ่ง ทำงานมา 10 ปีกว่าๆ ด้วยภาษาและเทคโนโลยี เช่น JavaScript, Node.js, React, Vue และปัจจุบันกำลังสนใจในเรื่องของ Blockchain และ Crypto กำลังหัดเรียนภาษา Rust