
วันนี้ได้รับ email ให้เข้าใช้งาน GitHub Package Registry ซึ่งอยู่ในสถานะ beta
โดยจะเป็น service สำหรับจัดเก็บ dependency/package ของภาษาโปรแกรมต่าง ๆ
จะเหมือนกับ
- Npmjs.org สำหรับ Node/JS
- Rubygems.org สำหรับ Ruby
- Hub.docker.com สำหรับ Docker image
นั่นทำให้ code ที่จัดเก็บใน GitHub
สามารถใช้จัดเก็บ dependency ต่าง ๆ ได้อีกด้วย
เป็นเหมือนกับ One-stop service ไปเลย
ความสามารถพื้นฐานประกอบไปด้วย
- เรื่องความปลอดภัยก็เช่นเดียวกับ Github นั่นเอง
- สามารถใช้ได้ทั้ง public และ private
- สามารถจัดการ permission ในการใช้งานได้
- แน่นอนส่าจัดเก็บได้หลากหลายรูปแบบ
- มีข้อมูลการใช้งานต่าง ๆ ทั้งการเปลี่ยนแปลงและการ download เป็นต้น
- ทำงานร่วมกับ GitHub APIs, Action และ web hooks ได้
- สามารถค้นหา package ที่มีในระบบทั้งหมดได้
รูปแบบของ package ที่สนับสนุนประกอบไปด้วย
- Npm
- Gem
- Apache Maven
- Docker
- Nuget
มาดูการใช้งาน เพื่อเก็บ Docker Image กัน
ขั้นตอนที่ 1 ทำการสร้าง token อนุญาตให้ใช้งาน read และ write package ดังรูป

นำ token ที่ได้มาทำการ login เข้าระบบผ่าน docker ดังนี้
$docker login docker.pkg.github.com</a> -u USERNAME -p PASSWORD/TOKEN
ขั้นตอนที่สอง
ทำการสร้าง repository ใน GitHub สำหรับนำ Docker Image ไปเก็บ
จากนั้นทำการสร้าง Docker Image ที่มีรูปแบบตามที่กำหนดคือ
docker.pkg.github.com/OWNER/REPOSITORY/IMAGE_NAME:VERSION
จากนั้นทำการ push ขึ้นเป็นเป็นอีกเรียบร้อย ยกตัวอย่างเช่น
$docker image push docker.pkg.github.com/up1/demo-package/hello-world:0.1
เมื่อทุกอย่างเรียบร้อย ก็ไปดูผลงานที่ GitHub ได้เลย
แสดงดังรูป

เพียงเท่านี้ก็สามารถใช้งานได้แล้ว มาลองใช้กันดู