Cài đặt CI/CD với Jenkins để build và deploy Docker Image [live coding][reup]

    2
    30



    Các bạn đang xem chương trình Hiểu Rõ Hơn (số 007), được phát sóng live stream hàng tuần vào 9AM sáng thứ 7 giờ Toronto và 8PM tối thứ 7 giờ Việt Nam. Thông qua demo này, mình sẽ giúp các bạn hiểu rõ thế nào là CI, thế nào là CD; hiểu được lợi ích của việc tự động hóa trong dự án phần mềm, tự động từ khâu kiểm thử, đóng gói bản release, cho đến tự động phân phối và triển khai.

    Link source code: https://github.com/nhtua/flask-docker
    Link Script tạo user và start Jenkins https://github.com/nhtua/bookshell/tree/master/vps

    Nội dung chính chương trình:
    00:08:19 – Tóm tắt nội dung chính
    00:09:49 – Cài đặt Server Jenkins
    00:31:20 – Cài plugin Github Integration, Docker & Docker Pipeline cho Jenkins
    00:35:34 – Giới thiệu Jenkinsfile
    00:48:00 – Tạo job trong Jenkins
    00:57:00 – Tạo Personal Access Token của Github để xài trong Jenkins
    00:59:50 – Đăng nhập Docker Hub trên Jenkins
    01:13:30 – Cài đặt plugin build cho Pull Request

    Bộ công cụ mà mình sẽ sử dụng:
    – Atom editor
    Python
    Docker
    Jenkins
    – Digital Ocean VPS

    #hieurohon #kysuphanmem #docker #laptrinh #jenkins #cicd

    source

    Previous articleVerasity (VRA) – Absolutes RAKETEN Potential? (Coin Vorstellung + Kauf Empfehlung?)
    Next articleScriptRunner – Write Hello World Program in Jira | Groovy

    30 COMMENTS

    1. Chào anh,
      Anh cho em hỏi là tại sao trong jenkins files ở stage TEST, mình đã tạo 1 container cài đặt python và cũng như poetry rồi, sao ở stage BUILD, mình lại sử dụng một Dockerfile để làm việc này nữa vậy ạ. Có thể tận dụng container đã build ở stage TEST để build thành 1 image để push lên hub đc không ?
      Thanks anh nhiều.

    2. Video hay quá ạ. Tuy nhiên em có 1 câu hỏi ạ. em tạo ra user Jenkins có uid: 1002, group docker : 998. Em thay vào câu lệnh của a để tạo container Jenkins-server. Tuy nhiên khi exec vào container thì user-name của em không phải là `jenkins` mà là `I have no name`. Khi em build job với Jenkin bị lỗi: `WARNING! Your password will be stored unencrypted in /.docker/config.json. Configure a credential helper to remove this warning. Error saving credentials: mkdir /.docker: permission denied`. Em chưa tìm được cách fix lỗi này ạ. Mong a trả lời giúp e a

    3. Mấy dự án trước giờ mình làm mấy PR toàn đc merge nếu peer review ok với ko conflict là đc

      Còn UT coding thì function chạy ổn hoặc release rồi mới start =]]

      BTW, thank you for your sharing (y)

    4. Bạn giúp mình chổ này chút được không, mình đã buil được một con jenkins, nhưng khi khởi động lên thì không cài được plugin, và vào trong vẫn không cài plugin được, mình đã built jenkins tới lui mấy lần nhưng plugin cũng không thể cài, giúp mình chút được không, cảm ơn Tựa nhiều…

    5. Hi anh Tuấn:
      Em thấy rất nhiều bạn chưa build sẵn một HomeLab ở nhà. Có đầy đủ công cụ.

      Xây dựng từ cơ sở hạ tầng vật lý, rồi lên máy chủ, rồi cluster, rồi k8s, rồi các services ….

      Xây dựng toàn bộ đầy đủ công cụ, phần mềm.

      Xong xây dựng, thì tiếp tục với các dự án từng dự án một.

      Nếu có HomeLab và tiếp theo học các bài của anh thì các bạn sẽ rất vững vàng!

    6. Hi a Tuấn. e cũng tên chữ T giống a. kakaka. Cảm ơn a đã sharing. E muốn hỏi a một số vấn đề ạ.
      1. Sao e hỏi 1 số a ở company e thì nói là không có docker trong docker, và nói ai lại làm vậy. Hehe. e cũng hứng thú việc DevOps. kakaka. Do đỡ code hơn. :).
      2. và chỗ giao diện Jenkins mình custom lại template được ko a. e thấy a TA ở công ty setup lại giao diện nhìn visualize lắm.
      Thanks a. Take care