DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

Cài đặt Jenkins docker phần 2

Quân Nguyễn by Quân Nguyễn
27 Tháng 4, 2025
in DevOps & Cloud
0
Share on FacebookShare on Twitter

Bài viết hướng dẫn tuỳ biến image jenkins docker, bổ sung thêm các plugin cần thiết, cấu hình sẳn Jenkins pipeline. Phần source code của bài đăng này được lưu ở đây

Dockerfile

Bạn sẽ bắt đầu với việc tuỳ chỉnh jenkins docker với Dockerfile

FROM jenkins/jenkins:lts
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false -Dhudson.footerURL=https://devopsify.co/tag/jenkins
ENV CASC_JENKINS_CONFIG /var/jenkins_home/casc.yaml

# Set default executors
COPY --chown=jenkins:jenkins executors.groovy /usr/share/jenkins/ref/init.groovy.d/executors.groovy

# Install plugin
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt

# Configure Jenkins
COPY casc.yaml /var/jenkins_home/casc.yaml

Giải thích sơ qua về phần dockerfile này, nó được build dựa trên image base là jenkins/jenkins:lts.

ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false -Dhudson.footerURL=http://opsify.co phần này dùng để bỏ qua bước setup cho lần đầu khởi động và url cho site jenkins.ENV CASC_JENKINS_CONFIG /var/jenkins_home/casc.yaml đặt cấu hình jenkins bằng vị trí của file casc.yaml (config as code) file này xác định tất cả cấu hình cảu jenkins.

Related Post

Đổi MTU cho Calico trong Kubernetes

Đổi MTU cho Calico trong Kubernetes

30 Tháng 4, 2025
Tắt NLA trên Amazon EC2 Windows instance

Tắt NLA trên Amazon EC2 Windows instance

30 Tháng 4, 2025

Selenium Tutorial – Java

1 Tháng 5, 2025

Demo Tích Hợp Vault trong Kubernetes

30 Tháng 4, 2025

Cài đặt plugins

Để cài đặt sản plugin cho jenkins, bạn cần phải tạo một file plugins.txt và đặt nó vào thư mục /usr/share/jenkins/ref/plugins.txt,  sau đó dùng lệnh

/usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt  để tiến hành cài đặt.Bạn có thể tuỳ ý thêm hoặc bớt plugins mà bạn cần.

Build image

Để build image bạn có thể clone source code về (link ở trên) tại thư mục làm việc chạy lệnh: docker build -t opsify/jenkins .

kiểm tra image vừa build xong bằng lệnh:

Cấu hình pipeline mẫu

Bạn sẻ tạo một container thứ 2, container này sẻ chứa script import pipeline. Script sẻ được thực thi thông qua jenkins-cli, để tìm hiểu thêm về jenkins-cli bạn có thể tham khảo ở đây.

Dockerfile cho jenkins-cli

FROM eclipse-temurin:11.0.12_7-jdk-focal
RUN mkdir -p /opt
ADD jenkins-cli.jar /opt/jenkins-cli.jar
# Configure Jenkins pipline
ADD ./jobconfigs /opt/jobconfigs
ADD ./createjobs.sh /opt/createjobs.sh

giải thích sơ về dockerfile này, image này cần jenkins-cli(jenkins-cli.jar), file script(createjobs.sh), file cấu hình job(jobconfigs) được thêm vào thông qua lệnh ADD.

File script tự động thêm job

#!/bin/bash
jobconfigs_dir=/opt/jobconfigs

while true; do
  for file in $jobconfigs_dir/*.xml; do
    filename=$(basename $ .xml)
    filename="${filename%.*}"
    java -jar /opt/jenkins-cli.jar -s http://jenkins:8080 -auth $:$ create-job $< $jobconfigs_dir/$.xml
  done
  RET=$?
  if [ $ == 4 ] ; then
      break
  fi
done

giải thích sơ :), sao cứ sơ hoài vậy?? thì chi tiết để bạn đọc tìm hiểu chứ. Script này sẻ dùng một vòng lặp nó sẻ liên tục chạy command tạo pipeline, vì jenkins khởi động lên sẻ tốn thời gian, tuỳ thuộc vào cấu hình máy tính, máy chạy nhanh máy thì chạy chậm. chạy đến khi nào lệnh được thực thi thì dừng.

Build image jenkins-cli

truy cập vào thư muc đã clone về chạy lệnh: docker build -t opsify/jenkins_cli -f jenkins_setup/Dockerfile ./jenkins_setup

Thế tại sao lại cần có container thứ hai?

Chắc chắn sẻ có bạn thắc mắc với câu hỏi như vậy, vì bản chất container sinh ra chỉ chạy duy nhất một tiến trình, gọi là tiến trình chủ đạo, sau khi job được thêm vào, bạn có thể tắt container jenkins-cli này đi mà không gặp vấn đề gì, hoặc bạn có nhu cầu thêm job thì cũng không cần build lại container jenkins-server.

Chạy với docker-compose

Trong file này bạn sẻ đặt hai container là jenkins-server và jenkins-cli vào cùng một network,  cáu hình user/pass cho jenkins site thông qua biến môi trường:

JENKINS_ADMIN_ID/JENKINS_ADMIN_PASSWORDchạy file script trong container jenkin-cli:command: bash /opt/createjobs.sh.

version: '3'
services:
  jenkins:
    image: opsify/jenkins
    container_name: jenkins_server
    restart: unless-stopped
    environment:
      - JENKINS_ADMIN_ID=admin
      - JENKINS_ADMIN_PASSWORD=password
    ports:
      - 8080:8080
    networks:
      - jenkins

  setup_jenkins:
    image: opsify/jenkins_cli
    environment:
      - JENKINS_ADMIN_ID=admin
      - JENKINS_ADMIN_PASSWORD=password
    container_name: setup_jenkins
    command: bash /opt/createjobs.sh
    networks:
      - jenkins

networks:
  jenkins:
    driver: bridge

chạy lệnh sau để  khởi động container: docker-compose up -d

Tags: buildcài đặt jenkinscontainerdockergroovyhướng dẫnjavajenkinspipelinepluginssetup
Quân Nguyễn

Quân Nguyễn

Related Posts

Đổi MTU cho Calico trong Kubernetes
DevOps & Cloud

Đổi MTU cho Calico trong Kubernetes

by Hiếu Tạ
30 Tháng 4, 2025
Tắt NLA trên Amazon EC2 Windows instance
DevOps & Cloud

Tắt NLA trên Amazon EC2 Windows instance

by Hiếu Tạ
30 Tháng 4, 2025
Selenium Tutorial – Java
AI & Automation

Selenium Tutorial – Java

by Huyen Tran
1 Tháng 5, 2025
Next Post
Thay đổi cấu hình thông qua biến môi trường

Thay đổi cấu hình thông qua biến môi trường

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

1 Tháng 5, 2025
Các website demo hay được sử dụng cho thực hành Automation Test

Các website demo hay được sử dụng cho thực hành Automation Test

11 Tháng 6, 2025
Cài đặt Maven trên Windows

Cài đặt Maven trên Windows

11 Tháng 6, 2025
Cài đặt Grafana – Loki – Promtail monitoring log Container

Cài đặt Grafana – Loki – Promtail monitoring log Container

1 Tháng 5, 2025
Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

16 Tháng 6, 2025
DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

13 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

11 Tháng 6, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
  • MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật
  • DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify