Câu hỏi về docker mong mọi người giúp đỡ
Mình đang tìm hiểu về docker, mọi người cho mình hỏi khi mình tạo Dockerfile, trong đó viết khá nhiều lệnh cài đặt.
Câu hỏi của mình ở đây là có cách nào để chạy test từng lệnh để tránh trường hợp khi chạy Dockerfile nó bị lỗi ko ạ.
Thêm 1 câu hỏi nữa mình muốn hỏi về cách backup DB khi dùng docker.
Không biết mọi người thường dùng cách nào để backup dữ liệu, ví dụ 1 tuần 1 lần trong docker-compose ạ.
Mình xin cảm ơn
3 ANSWERS
- Việc test lệnh cài đặt, bạn cứ run Dockerfile thành image nếu không có lỗi gì là đc rồi, có lỗi thì trong quá trình build n cũng hiển thị chi tiết lỗi ở đoạn nào mà
- Về backup CSDL thì bạn có thể tham khảo image này của mình https://viblo.asia/p/ban-da-backup-database-tren-production-chua-m68Z0A16lkG
Thanks bạn nhé, mình cũng đang chạy cả file Dockerfile như bạn nói, nhưng nhiều khi vẫn muốn run trc một vài lệnh trc.
Nhưng chắc ko có cách nào rồi
build docker thì cứ build liên tục đến khi được thôi, lỗi ở đâu nó hiện ra ở console rồi, phần build được đã được cache từng layer nên chẳng sợ tốn thời gian đâu
backup db thì đơn giản nhất cứ dùng cronjob mà đặt lệnh thôi, nếu dùng mysql container thì copy luôn volumn rồi đổi tên thôi, nhớ là vol internal
Bạn cứ chạy lệnh docker build thôi là được nhé. Vì Docker có Layer Caching nên khi bạn build image nó sẽ không chạy lại những lệnh đã success trước đó mà sẽ chạy tiếp từ chỗ lệnh bạn thay đổi hoặc bị lỗi.
Còn về Backup DB, thường mình hay chạy một service riêng. Backup hàng ngày. Về cơ bản vẫn là dùng cron để chạy lệnh backup của các DBMS cung cấp như: mysqldump của MySQL, pg_dump với PostgresSQL... Nhưng chẳng qua là đóng gói nó lại thành một image và chạy thành service backup riêng thôi. Bạn nên thiết lập cron backup vào khung giờ ít người dùng như tầm 3h, 4h sáng mỗi ngày chẳng hạn.
Tham khảo cách viết image này của Viblo: https://github.com/viblo-asia/docker-postgres-backup