เพิ่ม volume บน fly.io สำหรับ Active Storage
- active_storage
- fly.io
ช่วงนี้มีโอกาสได้ใช้ fly.io ในการ deploy โปรเจ็ค rails ซึ่งค่อนข้างจะสะดวกสบายเลยทีเดียว แต่ก็เจอปัญหาในการเก็บข้อมูลภาพหรือไฟล์จาก Active Storage เพราะทุกครั้งที่รัน deploy ใหม่
โฟลเดอร์ที่ใช้เก็บข้อมูลก็จะสร้างใหม่ขึ้่นทุกครั้ง จริงๆ ก็เป็นปัญหาทั่วไปของการใช้งาน Docker
นั้นแหละ ซึ่งในเคสนี้เราก็ต้องทำการสร้าง volume แยกเก็บข้อมูลเอาไว้ และ mount เข้าไปใน container ที่ใช้งาน
ก่อนอื่นเราต้องสร้าง volume ขึ้นมาก่อน
$ fly volumes create myapp_storage
จากนั้นก็ทำการ mount เข้ากับ app ของเราโดยเข้าไปกำหนดค่าในไฟล์ fly.toml
ดังตัวอย่างด้านล่าง
[mounts]
processes = ['web'] # specific process to mount volume
source="myapp_storage"
destination="/storage"
กรณีที่เรารันโปรแกรมหลายโปรเซส แนะนำให้กำหนด processes
ที่จะ mount ให้ชัดเจน ไม่งั้นจะเกิด error ได้
สำหรับการใช้งาน volume บน fly.io แบบละเอียดสามารถถตามลิงค์ https://fly.io/docs/reference/volumes ไปดูได้เลยนะ