คำสั่ง Docker พื้นฐานในการใช้งาน GitHub

Docker คือ engine ตัวหนึ่งที่มีการทำงานในลักษณะจำลองสภาพแวดล้อมขึ้นมาบนเครื่อง server เพื่อใช้ในการ run service ที่ต้องการ มีการทำงานคล้ายคลึงกับ Virtual Machine เช่น VMWare, VirtualBox, XEN, KVM แต่ข้อแตกต่างที่ชัดเจนคือ Virtual Machine ที่รู้จักกันก่อนหน้านี้นั้น เป็นการจำลองทั้ง OS เพื่อใช้งานและหากต้องการใช้งาน service อื่นๆ จะต้องติดตั้งเพิ่มเติมบน OS นั้นๆ แต่สำหรับ docker แล้วจะใช้ container ในการจำลองสภาพแวดล้อมขึ้นมา
2020.12.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Git คืออะไร

Git คือ Version control ที่คอยจัดเก็บความเปลี่ยนแปลงของไฟล์ในโปรเจคของเราหรือของทีมเราไม่ว่าเพื่อนคนไหนจะเปลี่ยนแปลง, เพิ่ม, ลบอะไรในโปรเจคเราก็สามารถที่จะรับรู้ได ้ทำให้รู้ว่า ‘งานที่กำลังทำอยู่ถึงไหนแล้ว’ Git สามารถเก็บบันทึกการเปลี่ยนแปลงของ Source Code เวอร์ชั่นล่าสุดไว้ที่ Local Repository ซึ่งสามารถทำงานได้โดยที่ไม่ต้องต่อกับอินเตอร์เน็ต และเมื่อต้อง Update การเปลี่ยนแปลงของ Source Code เวอร์ชั่นล่าสุดให้กับเพื่อนร่วมทีมก็สามารถที่จะ Push ขึ้นไปเก็บที่ Remote Repository(Git Hosting) และเพื่อนร่วมทีมก็สามารถ Pull เวอร์ชั้นล่าสุดนั้นมารวม(Auto Merge) ที่เครื่องของเขาเอง ทำให้ Source Code ที่พัฒนาร่วมกันกับคนภายในทีมเป็นเวอร์ชั่นล่าสุดเสมอ ส่วน Github คือ เว็ปไซต์ที่ทำให้เราสามารถใช้ Git ร่วมกับคนอื่นได้ หรือพูด ง่ายๆ ก็คือ Git ที่อยู่บนเว็บไซต์นั่นแหละ

คำสั่งพื้นฐาน

โดยปกติเมื่อเราทำการพัฒนาเว็บแอปพลิเคชั่น เราจะไม่พัฒนาผ่านเซิร์ฟเวอร์โดยตรง แต่เราจะสร้างสภาพแวดล้อมบนเครื่องของเรา ให้เหมือนกับเซิร์ฟเวอร์จริงโดยการ clone ผ่าน Docker เมื่อโคลนเสร็จจะมี branch develop ขึ้นมา เป็นส่วนหลักเพื่อใช้ในการ pull ข้อมูลจากเซิร์ฟเวอร์เข้าสู่คอมพิวเตอร์ของเรา ซึ่งในกรณีที่เป็นโปรเจคใหญ่ เราจะมีการสร้าง branch ย่อยขึ้นมารองรับโปรแกรมหรือตัวเซอร์วิสที่เราสร้างขึ้น ก่อนที่จะนำไปรวมกับโปรแกรมหลัก

ตัวอย่างคำสั่งพื้นฐานที่ใช้ในการทำงาน

  • git checkout develop - คำสั่งนี้ใช้เพื่อเชื่อมต่อไปหน้าหลักคือ branch develop ซึ่งเปรียบเสมือนศูนย์ควบคุมหลัก ที่ใช้ในการอัพเดทข้อมูลในเครื่องของเราให้ตรงกับเซิร์ฟเวอร์ (git pull) หรือทำการอัพโหลดไฟล์ที่อัพเดทในเครื่องเข้าสู่เซิร์ฟเวอร์เพื่อทำการ pull request (git push)

  • git pull - คำสั่งนี้ใช้เพื่อทำการอัพเดท และ ดาวน์โหลดไฟล์ ต่างๆ กรณีที่มีการแก้ไขโค้ดหรือเพิ่มไฟล์เข้ามาทำให้ข้อมูลในเครื่องเราเป็นข้อมูลล่าสุดที่อยู่ในเซิร์ฟเวอร์

  • git checkout -b feature/ชื่อไฟล์ - คำสั่งสร้าง branch ย่อย เพื่อใช้สร้างโปรแกรมเพิ่มเติม ก่อนที่จะนำโปรแกรมที่สร้างมารวมกับข้อมูลจริงในเซิร์ฟเวอร์

  • git add (path file) - คำสั่งนี้ ใช้เพื่อแอดไฟล์ที่มีการเพิ่มหรือแก้ไข เพื่อเตรียมการ commit สู่เซิร์ฟเวอร์ หรือในกรณีที่ไม่อยากพิมคำสั่ง สามารถใช้งาน TIG แทนการพิมคำสั่งได้เลย

  • git commit -m "comment" - คำสั่ง commit ไฟล์ที่มีการแอดก่อนหน้านี้ และ ใส่รายละเอียดของการทำงาน

  • git push origin feature/ชื่อbranch - คำสั่งนี้ใช้ในการอัพโหลดไฟล์ทั้งหมดที่มีการ commit ไปยัง github เพื่อเตรียมการ pull request

และนี้คือโครงสร้าง และ รูปแบบการทำงานที่ผมสร้างขึ้นมา เพื่อให้เห็นภาพการทำงานชัดเจนมากยิ่งขึ้น