Sunday, January 19, 2025

[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.

Previous article
Next article

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories