No menu items!
No menu items!
More

    [Jenkins] Cài đặt Jenkins trên Docker

    Đơn giản các bạn chỉ cần chạy lệnh sau, lưu ý là bạn hãy cài Docker trước nhé. Ở lệnh dưới mình mount thêm một số thư mục của một số ứng dụng cần chạy trong Jenkins, ví dụ như Docker, sshpass,…

    1. Sử dụng docker run.

    Đầu tiên tạo network riêng cho Jenkins.

    docker network create network_cicd
    docker run \
        --name jenkins \
        -p 8080:8080 \
        -p 50000:50000 \
        -v jenkins_home:/var/jenkins_home \
        -d \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -v $(which docker):/usr/bin/docker \
        -v $(which docker-compose):/usr/local/bin/docker-compose \
        -v $(which sshpass):/usr/bin/sshpass \
        -v $(which terraform):/usr/bin/terraform \
        --restart always \
        --network=network_cicd \
        jenkins/jenkins:latest

    Sử dụng lệnh docker ps để xem container mình đã triển khai. Như vậy chúng ta đã triển khai xong container Jenkins, sử dụng port 8080 để duyệt web

    $ docker ps
    CONTAINER ID   IMAGE                           COMMAND                  CREATED        STATUS        PORTS                                                                                      NAMES
    178d21ea50a5   jenkins/jenkins:jdk17-preview   "/usr/bin/tini -- /u…"   12 hours ago   Up 12 second   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp   jenkins

    – Dùng trình duyệt để login vào trang chủ của Jenkins với url: http:<ip-jenkins>:8080

    Dùng lệnh sau để lấy mật khẩu ban đầu nhé

    $ docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
    621ab01b4db548d29800a7d2da999517

    2. Sử dụng docker compose.

    Bạn có thể sử dụng file YAML để khai báo các thông tin tương tự như trong lệnh docker run. Ví dụ:

    version: "3"
    services:
      jenkins:
        container_name: jenkins
        image: jenkins/jenkins:latest
        ports:
          - "8080:8080"
          - "50000:50000"
        volumes:
          - jenkins_home:/var/jenkins_home
          - /var/run/docker.sock:/var/run/docker.sock
          - /usr/bin/docker:/usr/bin/docker
          - /usr/local/bin/docker-compose:/usr/local/bin/docker-compose
          - /usr/bin/sshpass:/usr/bin/sshpass
          - /usr/bin/terraform:/usr/bin/terraform
        restart: always
        networks:
          - network_cicd
    volumes:
      jenkins_home:
    networks:
      network_cicd:

    Trong file docker-compose.yaml này, ta có một service jenkins được định nghĩa với các thông số tương tự như trong lệnh docker run, bao gồm:

    • container_name: tên của container
    • image: tên image và phiên bản của Jenkins
    • ports: cổng mà container sử dụng
    • volumes: các mount point được sử dụng
    • restart: chế độ khởi động container khi có lỗi xảy ra
    • networks: tên mạng mà container được kết nối

    Ngoài ra, ta có định nghĩa volume jenkins_home và network network_name. Sau khi tạo file này, ta có thể sử dụng lệnh sau để chạy container:

    docker-compose up -d

    Lưu ý, nếu bạn đã có container đang chạy với tên jenkins thì nên dừng và xóa container đó trước khi sử dụng docker-compose up để chạy lại container mới.

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email