Debian Docker Compose Alternatives
หลังจาก Docker Compose ออก verion 2 ซึ่งจะเป็น Plugin แทน Standalone command เหมือนรุ่นแรก ซึ่งหลาย ๆ ท่านจะคุ้นเคยกับการเรียก docker-compose
แทน docker compose
ทำให้รู้สึกขัดใจ จริง ๆ วิธีทำ alias มีหลานแบบ อาจจะทำ symlink หรือ alias ใน shell ก็ได้ แต่บทความนี้จะแนะนำการใช้ update-alternatives
ในการเปลี่ยนชื่อเป็น docker-compose
แทน docker compose
ในระบบ Debian หรือ Ubuntu หรือ Linux ค่ายอื่น ๆ ที่ใช้ Debian เป็น base
ตรวจสอบ Docker Compose Plugin ในระบบ
เนื่องจาก Docker Compose v2 จะเป็น Plugin ทำให้เราต้องตรวจสอบว่ามี Plugin อยู่ในระบบหรือไม่ โดยใช้คำสั่ง
dpkg -l | grep docker-compose-plugin
ปกติถ้าติดตั้งตามคำแนะนำในหน้าเว็บของ Docker จะติดตั้งเป็น Plugin แล้ว แต่ถ้าไม่มีก็ติดตั้งด้วยคำสั่ง
sudo apt install docker-compose-plugin
ตรวจสอบ Path ของ Docker Compose Plugin
เราสามารถตรวจสอบ Path ของ Docker Compose Plugin ได้โดยใช้คำสั่ง
dpkg -L docker-compose-plugin
จะได้ผลลัพธ์เช่น
/.
/usr
/usr/libexec
/usr/libexec/docker
/usr/libexec/docker/cli-plugins
/usr/libexec/docker/cli-plugins/docker-compose
/usr/share
/usr/share/doc
/usr/share/doc/docker-compose-plugin
/usr/share/doc/docker-compose-plugin/changelog.Debian.gz
ให้เราจำ Path /usr/libexec/docker/cli-plugins/docker-compose
ไว้เดี๋ยวเราจะใช้ในการ update-alternatives
update-alternatives
update-alternatives
เป็นคำสั่งที่ใช้ในการเปลี่ยนชื่อของ command ให้เป็นชื่ออื่น โดยเราจะใช้คำสั่งนี้ในการเปลี่ยนชื่อ docker-compose
ให้เป็น docker compose
โดยใช้คำสั่ง
sudo update-alternatives --install /usr/bin/docker-compose docker-compose /usr/libexec/docker/cli-plugins/docker-compose 0
ผลลัพธ์จะเป็น
update-alternatives: using /usr/libexec/docker/cli-plugins/docker-compose to provide /usr/bin/docker-compose (docker-compose) in auto mode
ตรวจสอบด้วยคำสั่ง
update-alternatives --display docker-compose
จะได้ผลลัพธ์เช่น
docker-compose - auto mode
link best version is /usr/libexec/docker/cli-plugins/docker-compose
link currently points to /usr/libexec/docker/cli-plugins/docker-compose
link docker-compose is /usr/bin/docker-compose
/usr/libexec/docker/cli-plugins/docker-compose - priority 0
ทดสอบการใช้งาน
เราลองใช้คำสั่ง docker compose --version
ดู
docker-compose version
จะได้ผลลัพธ์เช่น
Docker Compose version v2.32.1
สรุป
เราสามารถนำเทคนิคนี้ไปใช้กับ command อื่น ๆ ได้อีกลองเอาไปประยุกต์ใช้กันดูนะครับ