update docker image ให้ใหม่สดอยู่เสมอ
เมื่อเรามีจำนวน docker container จำนวนเยอะๆ การที่เราต้องมาคอย pull latest image แต่ละ container ค่อนข้างเสียเวลามาก อีกทั้งเราก็ไม่สามารถรู้ล่วงหน้าว่า เมื่อไหร่ image จะมีการ update เป็นเวอร์ชั่นใหม่ แต่ถ้าเราสามารถ automation update docker image ทุกๆ container ของเราชีวิตมันก็คงจะง่ายขึ้นเนอะ
* คำเตือน การตั้ง automation update อาจจะส่งเสียต่อ container ของท่านได้ กรณีเวอร์ชั่นใหม่มี bug ค่อนข้างเยอะ หรือไม่ support ต่อระบบของท่าน เพราะฉนั้นกรุณาทำระบบ monitoring อย่างแข็งแรง!
Watchtower คือ "หอสังเกตการณ์" 555+ อันนั้นก็ตรงตัวไป ถ้าอธิบายง่ายๆก็คือ docker container ตัวนึงที่จะคอยตรวจสอบ docker image ถ้าเจอมีการ update version ก็จะทำการ pull image จากนั้น restart container ให้เราทันที ฟังแล้วชีวิตง่ายขึ้นมาก (อ่านเพิ่มเติม)
เริ่มติดตั้ง Watchtower
สำหรับการติดตั้ง watchtower สามารถทำได้ทั้งแบบ docker run หรือ docker-compose แต่สำหรับวันนี้ผมจะใช้วิธี docker-compose โดยสร้าง stack ผ่านทาง portainer
version: "2"
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Asia/Bangkok
- WATCHTOWER_SCHEDULE=0 0 12 * * *
- WATCHTOWER_CLEANUP=true
environment ที่จำเป็นต้องใช้งาน (อ่านเพิ่มเติม)
- TZ=Asia/Bangkok คือ time zone อันนี้ทุกคน น่าจะรู้กันแล้ว ข้ามไปเนอะ
- WATCHTOWER_SCHEDULE=0 0 12 * * * คือ การตั้งเวลา update image จะเป็นรูปแบบ Cron
- WATCHTOWER_CLEANUP=true คือ ทำการลบ image ตัวเก่าทิ้ง