Hướng dẫn này chỉ cho bạn cách sử dụng Jenkins để phối hợp xây dựng một ứng dụng Python đơn giản với PyInstaller
Nếu bạn là nhà phát triển Python chưa quen với các khái niệm CI/CD hoặc bạn có thể đã quen thuộc với các khái niệm này nhưng không biết cách triển khai xây dựng ứng dụng của mình bằng Jenkins, thì hướng dẫn này là dành cho bạn
Ứng dụng Python đơn giản [mà bạn sẽ lấy từ kho lưu trữ mẫu trên GitHub] là một công cụ dòng lệnh "add2vals" tạo ra phép cộng hai giá trị. Nếu ít nhất một trong các giá trị là một chuỗi, thì "add2vals" coi cả hai giá trị là một chuỗi và thay vào đó nối các giá trị. Hàm "add2" trong thư viện "calc" [mà "add2vals"] nhập vào được đi kèm với một tập hợp các bài kiểm tra đơn vị. Chúng được kiểm tra bằng pytest để kiểm tra xem chức năng này có hoạt động như mong đợi không và kết quả được lưu vào báo cáo JUnit XML
Việc cung cấp công cụ "add2vals" thông qua PyInstaller chuyển đổi công cụ này thành một tệp thực thi độc lập cho Linux, bạn có thể tải xuống thông qua Jenkins và thực thi tại dòng lệnh trên các máy Linux mà không cần Python
Ghi chú. Không giống như các hướng dẫn khác trong tài liệu này, hướng dẫn này yêu cầu tải xuống thêm khoảng 500 MB dữ liệu hình ảnh Docker
Khoảng thời gian. Hướng dẫn này mất 20-40 phút để hoàn thành [giả sử bạn đã đáp ứng những điều bên dưới]. Thời lượng chính xác sẽ phụ thuộc vào tốc độ máy của bạn và bạn đã xem hướng dẫn khác hay chưa
Bạn có thể dừng hướng dẫn này bất kỳ lúc nào và tiếp tục từ nơi bạn đã dừng lại
Nếu bạn đã chạy qua một hướng dẫn khác, bạn có thể bỏ qua các phần và phần bên dưới và tiếp tục. [Chỉ cần đảm bảo bạn đã cài đặt Git cục bộ. ] Nếu bạn cần khởi động lại Jenkins, chỉ cần làm theo hướng dẫn khởi động lại trong rồi tiếp tục
điều kiện tiên quyết
Đối với hướng dẫn này, bạn sẽ yêu cầu
Một máy macOS, Linux hoặc Windows có
RAM 256 MB, mặc dù khuyến nghị hơn 2 GB
10 GB dung lượng ổ đĩa cho Jenkins cũng như hình ảnh và vùng chứa Docker của bạn
Đã cài phần mềm sau
Docker - Đọc thêm về cách cài đặt Docker trong phần của trang Cài đặt Jenkins
Ghi chú. Nếu bạn sử dụng Linux, thì hướng dẫn này giả định rằng bạn không chạy các lệnh Docker với tư cách là người dùng gốc mà thay vào đó với một tài khoản người dùng duy nhất cũng có quyền truy cập vào các công cụ khác được sử dụng trong suốt hướng dẫn nàyGit và tùy chọn GitHub Desktop
Chạy Jenkins trong Docker
Trong hướng dẫn này, bạn sẽ chạy Jenkins dưới dạng bộ chứa Docker từ hình ảnh Docker
docker run \
--name jenkins-docker \[1]
--rm \[2]
--detach \[3]
--privileged \[4]
--network jenkins \[5]
--network-alias docker \[6]
--env DOCKER_TLS_CERTDIR=/certs \[7]
--volume jenkins-docker-certs:/certs/client \[8]
--volume jenkins-data:/var/jenkins_home \[9]
--publish 2376:2376 \[10]
--publish 3000:3000 --publish 5000:5000 \[11]
docker:dind \[12]
--storage-driver overlay2 [13]
9Để chạy Jenkins trong Docker, hãy làm theo các hướng dẫn có liên quan bên dưới cho một trong hai hoặc
Bạn có thể đọc thêm về khái niệm Docker container và image trong phần Docker của trang Cài đặt Jenkins
Trên macOS và Linux
Mở một cửa sổ đầu cuối
Tạo mạng cầu nối trong Docker bằng lệnh
0 saudocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
docker network create jenkins
Để thực thi các lệnh Docker bên trong các nút Jenkins, hãy tải xuống và chạy hình ảnh Docker
1 bằng cách sử dụng lệnhdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
2 sau đâydocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
1[Tùy chọn] Chỉ định tên bộ chứa Docker sẽ sử dụng để chạy hình ảnh. Theo mặc định, Docker sẽ tạo một tên duy nhất cho vùng chứa. 2 [Tùy chọn] Tự động xóa bộ chứa Docker [phiên bản của hình ảnh Docker] khi nó bị tắt. 3[Tùy chọn] Chạy bộ chứa Docker ở chế độ nền. Có thể dừng phiên bản này sau bằng cách chạy
3. 4Running Docker trong Docker hiện yêu cầu quyền truy cập đặc quyền để hoạt động bình thường. Yêu cầu này có thể được nới lỏng với các phiên bản nhân Linux mới hơn. 5Điều này tương ứng với mạng được tạo ở bước trước đó. 6Làm cho bộ chứa Docker trong Docker khả dụng dưới dạng tên máy chủdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
4 trong mạngdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
5. 7Cho phép sử dụng TLS trong máy chủ Docker. Do việc sử dụng vùng chứa đặc quyền, điều này được khuyến nghị, mặc dù nó yêu cầu sử dụng ổ đĩa được chia sẻ được mô tả bên dưới. Biến môi trường này kiểm soát thư mục gốc nơi quản lý chứng chỉ Docker TLS. 8Ánh xạ thư mụcdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
6 bên trong vùng chứa tới một ổ đĩa Docker có tên làdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
7 như đã tạo ở trên. 9Ánh xạ thư mụcdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
8 bên trong vùng chứa tới ổ đĩa Docker có têndocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
9. Điều này sẽ cho phép các bộ chứa Docker khác được điều khiển bởi trình nền Docker của bộ chứa Docker này để gắn dữ liệu từ Jenkins. 10[Tùy chọn] Hiển thị cổng daemon Docker trên máy chủ. Điều này hữu ích để thực thi các lệnhdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
4 trên máy chủ để điều khiển daemon Docker bên trong này. 11 Hiển thị các cổng 3000 và 5000 từ docker trong docker container, được sử dụng bởi một số hướng dẫn. 12Hình ảnhdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
1. Hình ảnh này có thể được tải xuống trước khi chạy bằng cách sử dụng lệnh.docker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
2. 13Trình điều khiển lưu trữ cho Docker volume. Xem "Trình điều khiển lưu trữ Docker" để biết các tùy chọn được hỗ trợFROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Ghi chú. Nếu sao chép và dán đoạn lệnh trên không hoạt động, hãy thử sao chép và dán phiên bản không có chú thích này tại đây
docker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
Tùy chỉnh hình ảnh Jenkins Docker chính thức, bằng cách thực hiện hai bước bên dưới
Tạo Dockerfile với nội dung sau
FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Xây dựng một hình ảnh docker mới từ Dockerfile này và gán cho hình ảnh một tên có ý nghĩa, e. g. "myjenkins-blueocean. 2. 375. 2-1"
docker build -t myjenkins-blueocean:2.375.2-1 .
Hãy nhớ rằng quy trình được mô tả ở trên sẽ tự động tải xuống hình ảnh Jenkins Docker chính thức nếu điều này chưa được thực hiện trước đó
Chạy hình ảnh
3 của riêng bạn dưới dạng vùng chứa trong Docker bằng cách sử dụng lệnhFROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
2 sau đâydocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
docker run \ --name jenkins-blueocean \[1] --detach \[2] --network jenkins \[3] --env DOCKER_HOST=tcp://docker:2376 \[4] --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \[5] --publish 50000:50000 \[6] --volume jenkins-data:/var/jenkins_home \[7] --volume jenkins-docker-certs:/certs/client:ro \[8] --volume "$HOME":/home \[9] --restart=on-failure \[10] --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11] myjenkins-blueocean:2.375.2-1 [12]
1[Tùy chọn] Chỉ định tên vùng chứa Docker cho phiên bản hình ảnh Docker này. 2[Tùy chọn] Chạy vùng chứa hiện tại ở chế độ nền [i. e. chế độ "tách rời"] và xuất ID vùng chứa. Nếu bạn không chỉ định tùy chọn này thì nhật ký Docker đang chạy cho vùng chứa này sẽ được xuất trong cửa sổ đầu cuối. 3Kết nối vùng chứa này với mạng
5 được xác định ở bước trước đó. Điều này làm cho trình nền Docker từ bước trước có sẵn cho bộ chứa Jenkins này thông qua tên máy chủdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
4. 4Chỉ định các biến môi trường được sử dụng bởidocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
4,docker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
8 và các công cụ Docker khác để kết nối với daemon Docker từ bước trước. 5Bản đồ [tôi. e. "xuất bản"] cổng 8080 của vùng chứa hiện tại sang cổng 8080 trên máy chủ. Số đầu tiên đại diện cho cổng trên máy chủ trong khi số cuối cùng đại diện cho cổng của vùng chứa. Do đó, nếu bạn chỉ địnhFROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
9 cho tùy chọn này, bạn sẽ truy cập Jenkins trên máy chủ của mình thông qua cổng 49000. 6[Tùy chọn] Ánh xạ cổng 50000 của vùng chứa hiện tại sang cổng 50000 trên máy chủ. Điều này chỉ cần thiết nếu bạn đã thiết lập một hoặc nhiều tác nhân Jenkins gửi đến trên các máy khác, từ đó các tác nhân này tương tác với bộ chứaFROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
0 của bạn ["bộ điều khiển" Jenkins]. Các đại lý Jenkins trong nước giao tiếp với bộ điều khiển Jenkins thông qua cổng TCP 50000 theo mặc định. Bạn có thể thay đổi số cổng này trên bộ điều khiển Jenkins của mình thông qua trang Cấu hình bảo mật toàn cầu. Nếu bạn thay đổi cổng TCP cho các tác nhân Jenkins gửi đến của bộ điều khiển Jenkins của bạn thành 51000 [ví dụ], thì bạn sẽ cần chạy lại Jenkins [thông qua lệnhdocker build -t myjenkins-blueocean:2.375.2-1 .
1 này] và chỉ định tùy chọn "xuất bản" này bằng một cái gì đó nhưdocker build -t myjenkins-blueocean:2.375.2-1 .
2, . Các tác nhân Jenkins trong nước giao tiếp với bộ điều khiển Jenkins trên cổng đó [52000 trong ví dụ này]. Lưu ý rằng các đại lý WebSocket không cần cấu hình này. 7Ánh xạ thư mụcdocker build -t myjenkins-blueocean:2.375.2-1 .
8 trong vùng chứa vào ổ đĩa Docker với têndocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
9. Thay vì ánh xạ thư mụcdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
8 vào ổ đĩa Docker, bạn cũng có thể ánh xạ thư mục này tới một thư mục trên hệ thống tệp cục bộ của máy bạn. Ví dụ: chỉ định tùy chọndocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
6 sẽ ánh xạ thư mụcdocker build -t myjenkins-blueocean:2.375.2-1 .
8 của vùng chứa tới thư mục condocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
5 trong thư mụcdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
9 trên máy cục bộ của bạn, thư mục này thường làdocker build -t myjenkins-blueocean:2.375.2-1 .
0 hoặcdocker run \ --name jenkins-blueocean \[1] --detach \[2] --network jenkins \[3] --env DOCKER_HOST=tcp://docker:2376 \[4] --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \[5] --publish 50000:50000 \[6] --volume jenkins-data:/var/jenkins_home \[7] --volume jenkins-docker-certs:/certs/client:ro \[8] --volume "$HOME":/home \[9] --restart=on-failure \[10] --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11] myjenkins-blueocean:2.375.2-1 [12]
1. Lưu ý rằng nếu bạn thay đổi ổ đĩa nguồn hoặc thư mục cho điều này, thì ổ đĩa từ vùng chứadocker run \ --name jenkins-blueocean \[1] --detach \[2] --network jenkins \[3] --env DOCKER_HOST=tcp://docker:2376 \[4] --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \[5] --publish 50000:50000 \[6] --volume jenkins-data:/var/jenkins_home \[7] --volume jenkins-docker-certs:/certs/client:ro \[8] --volume "$HOME":/home \[9] --restart=on-failure \[10] --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11] myjenkins-blueocean:2.375.2-1 [12]
1 ở trên cần được cập nhật để phù hợp với điều này. 8Ánh xạ thư mụcdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
6 vào ổ đĩadocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
7 đã tạo trước đó. Điều này làm cho các chứng chỉ TLS của máy khách cần thiết để kết nối với trình nền Docker có sẵn trong đường dẫn được chỉ định bởi biến môi trườngdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
5. 9Ánh xạ thư mụcdocker run \ --name jenkins-blueocean \[1] --detach \[2] --network jenkins \[3] --env DOCKER_HOST=tcp://docker:2376 \[4] --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \[5] --publish 50000:50000 \[6] --volume jenkins-data:/var/jenkins_home \[7] --volume jenkins-docker-certs:/certs/client:ro \[8] --volume "$HOME":/home \[9] --restart=on-failure \[10] --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11] myjenkins-blueocean:2.375.2-1 [12]
9 trên máy chủ [i. e. cục bộ] của bạn [thường là thư mụcdocker build -t myjenkins-blueocean:2.375.2-1 .
7] vào thư mụcdocker run \ --name jenkins-blueocean \[1] --detach \[2] --network jenkins \[3] --env DOCKER_HOST=tcp://docker:2376 \[4] --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \[5] --publish 50000:50000 \[6] --volume jenkins-data:/var/jenkins_home \[7] --volume jenkins-docker-certs:/certs/client:ro \[8] --volume "$HOME":/home \[9] --restart=on-failure \[10] --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11] myjenkins-blueocean:2.375.2-1 [12]
8 trong vùng chứa. Được sử dụng để truy cập các thay đổi cục bộ đối với kho hướng dẫn. 10Định cấu hình chính sách khởi động lại bộ chứa Docker để khởi động lại khi không thành công như được mô tả trong bài đăng trên blog. 11Cho phép thanh toán tại địa phương cho hướng dẫn. Xem lý do tại sao không nên sử dụng đối số này trên bản cài đặt sản xuất. 12Tên của hình ảnh Docker mà bạn đã tạo ở bước trướcdocker run \ --name jenkins-blueocean \[1] --detach \[2] --network jenkins \[3] --env DOCKER_HOST=tcp://docker:2376 \[4] --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \[5] --publish 50000:50000 \[6] --volume jenkins-data:/var/jenkins_home \[7] --volume jenkins-docker-certs:/certs/client:ro \[8] --volume "$HOME":/home \[9] --restart=on-failure \[10] --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11] myjenkins-blueocean:2.375.2-1 [12]
Ghi chú. Nếu sao chép và dán đoạn lệnh trên không hoạt động, hãy thử sao chép và dán phiên bản không có chú thích này tại đây
docker run --name jenkins-blueocean --detach \ --network jenkins --env DOCKER_HOST=tcp://docker:2376 \ --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 --publish 50000:50000 \ --volume jenkins-data:/var/jenkins_home \ --volume jenkins-docker-certs:/certs/client:ro \ --volume "$HOME":/home \ --restart=on-failure \ --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \ myjenkins-blueocean:2.375.2-1
tiến tới
Trên Windows
Dự án Jenkins cung cấp hình ảnh bộ chứa Linux, không phải hình ảnh bộ chứa Windows. Đảm bảo rằng cài đặt Docker cho Windows của bạn được định cấu hình để chạy
docker run \
--name jenkins-blueocean \[1]
--detach \[2]
--network jenkins \[3]
--env DOCKER_HOST=tcp://docker:2376 \[4]
--env DOCKER_CERT_PATH=/certs/client \
--env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 \[5]
--publish 50000:50000 \[6]
--volume jenkins-data:/var/jenkins_home \[7]
--volume jenkins-docker-certs:/certs/client:ro \[8]
--volume "$HOME":/home \[9]
--restart=on-failure \[10]
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11]
myjenkins-blueocean:2.375.2-1 [12]
9 thay vì docker run --name jenkins-blueocean --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--volume "$HOME":/home \
--restart=on-failure \
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \
myjenkins-blueocean:2.375.2-1
0. Xem tài liệu Docker để biết hướng dẫn. Sau khi được định cấu hình để chạy docker run \
--name jenkins-blueocean \[1]
--detach \[2]
--network jenkins \[3]
--env DOCKER_HOST=tcp://docker:2376 \[4]
--env DOCKER_CERT_PATH=/certs/client \
--env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 \[5]
--publish 50000:50000 \[6]
--volume jenkins-data:/var/jenkins_home \[7]
--volume jenkins-docker-certs:/certs/client:ro \[8]
--volume "$HOME":/home \[9]
--restart=on-failure \[10]
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11]
myjenkins-blueocean:2.375.2-1 [12]
9, các bước làMở cửa sổ nhắc lệnh lên và tương tự như hướng dẫn trên bạn làm như sau
Tạo mạng cầu nối trong Docker
docker network create jenkins
Chạy docker. hình ảnh dond Docker
docker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
Tùy chỉnh hình ảnh Jenkins Docker chính thức, bằng cách thực hiện hai bước bên dưới
Tạo Dockerfile với nội dung sau
FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Xây dựng một hình ảnh docker mới từ Dockerfile này và gán cho hình ảnh một tên có ý nghĩa, e. g. "myjenkins-blueocean. 2. 375. 2-1"
docker build -t myjenkins-blueocean:2.375.2-1 .
Hãy nhớ rằng quy trình được mô tả ở trên sẽ tự động tải xuống hình ảnh Jenkins Docker chính thức nếu điều này chưa được thực hiện trước đó
Chạy hình ảnh
3 của riêng bạn dưới dạng vùng chứa trong Docker bằng cách sử dụng lệnhFROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
2 sau đâydocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
1docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
tiến tới
Truy cập bộ chứa Docker
Nếu bạn có một số kinh nghiệm với Docker và bạn muốn hoặc cần truy cập bộ chứa Docker của mình thông qua dấu nhắc lệnh/thiết bị đầu cuối bằng cách sử dụng lệnh
docker run --name jenkins-blueocean --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--volume "$HOME":/home \
--restart=on-failure \
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \
myjenkins-blueocean:2.375.2-1
4, bạn có thể thêm một tùy chọn như docker run --name jenkins-blueocean --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--volume "$HOME":/home \
--restart=on-failure \
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \
myjenkins-blueocean:2.375.2-1
5 vào lệnh docker run --name jenkins-blueocean --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--volume "$HOME":/home \
--restart=on-failure \
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \
myjenkins-blueocean:2.375.2-1
4. Điều đó sẽ truy cập vào vùng chứa Jenkins Docker có tên là "jenkins-tutorial"Điều này có nghĩa là bạn có thể truy cập bộ chứa docker của mình [thông qua một cửa sổ dấu nhắc lệnh/thiết bị đầu cuối riêng biệt] bằng một lệnh
docker run --name jenkins-blueocean --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--volume "$HOME":/home \
--restart=on-failure \
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \
myjenkins-blueocean:2.375.2-1
4 nhưdocker run --name jenkins-blueocean --detach \
--network jenkins --env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 --publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
--volume "$HOME":/home \
--restart=on-failure \
--env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \
myjenkins-blueocean:2.375.2-1
8Truy cập nhật ký Docker
Chẳng hạn, có khả năng bạn cần truy cập nhật ký bảng điều khiển Jenkins khi là một phần của
Nhật ký bảng điều khiển Jenkins có thể dễ dàng truy cập thông qua cửa sổ nhắc lệnh/thiết bị đầu cuối mà từ đó bạn đã thực hiện lệnh
docker build -t myjenkins-blueocean:2.375.2-1 .
1. Trong trường hợp nếu cần, bạn cũng có thể truy cập nhật ký bảng điều khiển Jenkins thông qua nhật ký Docker của vùng chứa của mình bằng lệnh saudocker network create jenkins
0Bạn có thể nhận được
docker network create jenkins
1 bằng cách sử dụng lệnh docker network create jenkins
2Truy cập thư mục chính của Jenkins
Chẳng hạn, có khả năng bạn cần truy cập thư mục chính của Jenkins để kiểm tra chi tiết về bản dựng Jenkins trong thư mục con
docker network create jenkins
3Nếu bạn đã ánh xạ thư mục chính của Jenkins [_______1_______8] tới một thư mục trên hệ thống tệp cục bộ của máy bạn [i. e. trong lệnh
docker build -t myjenkins-blueocean:2.375.2-1 .
1 ], thì bạn có thể truy cập nội dung của thư mục này thông qua dấu nhắc lệnh/thiết bị đầu cuối thông thường của máyMặt khác, nếu bạn đã chỉ định tùy chọn
docker network create jenkins
6 trong lệnh docker build -t myjenkins-blueocean:2.375.2-1 .
1, bạn có thể truy cập nội dung của thư mục chính Jenkins thông qua dấu nhắc lệnh/thiết bị đầu cuối của bộ chứa bằng cách sử dụng lệnh docker network create jenkins
8docker network create jenkins
9Như đã đề cập, bạn có thể nhận được
docker network create jenkins
1 bằng cách sử dụng lệnh docker run --name jenkins-docker --detach ^
--privileged --network jenkins --network-alias docker ^
--env DOCKER_TLS_CERTDIR=/certs ^
--volume jenkins-docker-certs:/certs/client ^
--volume jenkins-data:/var/jenkins_home ^
--publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^
docker:dind
1. Nếu bạn chỉ địnhTùy chọn
docker run --name jenkins-docker --detach ^
--privileged --network jenkins --network-alias docker ^
--env DOCKER_TLS_CERTDIR=/certs ^
--volume jenkins-docker-certs:/certs/client ^
--volume jenkins-data:/var/jenkins_home ^
--publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^
docker:dind
2 trong lệnh docker run --name jenkins-docker --detach ^
--privileged --network jenkins --network-alias docker ^
--env DOCKER_TLS_CERTDIR=/certs ^
--volume jenkins-docker-certs:/certs/client ^
--volume jenkins-data:/var/jenkins_home ^
--publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^
docker:dind
3 ở trên [xem thêm ], bạn chỉ cần sử dụng lệnh docker network create jenkins
8docker run --name jenkins-docker --detach ^
--privileged --network jenkins --network-alias docker ^
--env DOCKER_TLS_CERTDIR=/certs ^
--volume jenkins-docker-certs:/certs/client ^
--volume jenkins-data:/var/jenkins_home ^
--publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^
docker:dind
5trình hướng dẫn cài đặt
Trước khi bạn có thể truy cập Jenkins, bạn cần thực hiện một số bước nhanh "một lần"
Mở khóa Jenkins
Khi bạn truy cập phiên bản Jenkins mới lần đầu tiên, bạn sẽ được yêu cầu mở khóa phiên bản đó bằng mật khẩu được tạo tự động
Sau khi 2 bộ dấu hoa thị xuất hiện trong cửa sổ dấu nhắc lệnh/thiết bị đầu cuối, hãy duyệt đến
6 và đợi cho đến khi trang Mở khóa Jenkins xuất hiệndocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
Hiển thị nhật ký bảng điều khiển Jenkins bằng lệnh
2docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Từ cửa sổ nhắc lệnh/thiết bị đầu cuối của bạn một lần nữa, sao chép mật khẩu chữ và số được tạo tự động [giữa 2 bộ dấu hoa thị]
Trên trang Mở khóa Jenkins, dán mật khẩu này vào trường Mật khẩu quản trị viên và nhấp vào Tiếp tục
Tùy chỉnh Jenkins bằng plugin
Sau đó, trang Customize Jenkins xuất hiện
Trên trang này, hãy nhấp vào Cài đặt plugin được đề xuất
Trình hướng dẫn thiết lập hiển thị tiến trình Jenkins được định cấu hình và các plugin được đề xuất đang được cài đặt. Quá trình này có thể mất vài phút
Tạo người dùng quản trị viên đầu tiên
Cuối cùng, Jenkins yêu cầu bạn tạo người dùng quản trị viên đầu tiên của mình
Khi trang Tạo người dùng quản trị viên đầu tiên xuất hiện, hãy chỉ định chi tiết của bạn trong các trường tương ứng và nhấp vào Lưu và hoàn tất
Khi trang Jenkins sẵn sàng xuất hiện, nhấp vào Bắt đầu sử dụng Jenkins
ghi chúTrang này có thể cho biết Jenkins gần như đã sẵn sàng. thay vào đó và nếu vậy, hãy nhấp vào Khởi động lại
Nếu trang không tự động làm mới sau một phút, hãy sử dụng trình duyệt web của bạn để làm mới trang theo cách thủ công
Nếu được yêu cầu, hãy đăng nhập vào Jenkins bằng thông tin đăng nhập của người dùng bạn vừa tạo và bạn đã sẵn sàng bắt đầu sử dụng Jenkins
Dừng và khởi động lại Jenkins
Trong suốt phần còn lại của hướng dẫn này, bạn có thể dừng bộ chứa Docker của mình bằng cách chạy
docker run \
--name jenkins-docker \[1]
--rm \[2]
--detach \[3]
--privileged \[4]
--network jenkins \[5]
--network-alias docker \[6]
--env DOCKER_TLS_CERTDIR=/certs \[7]
--volume jenkins-docker-certs:/certs/client \[8]
--volume jenkins-data:/var/jenkins_home \[9]
--publish 2376:2376 \[10]
--publish 3000:3000 --publish 5000:5000 \[11]
docker:dind \[12]
--storage-driver overlay2 [13]
3Để khởi động lại bộ chứa Docker của bạn
Chạy các lệnh
1 giống như bạn đã chạy hoặc cao hơndocker build -t myjenkins-blueocean:2.375.2-1 .
Duyệt đến
6docker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
Chờ cho đến khi trang đăng nhập xuất hiện và đăng nhập
Phân nhánh và sao chép kho lưu trữ mẫu
Lấy ứng dụng Python "thêm" đơn giản từ GitHub, bằng cách rẽ nhánh kho lưu trữ mẫu mã nguồn của ứng dụng vào tài khoản GitHub của riêng bạn và sau đó sao chép cục bộ rẽ nhánh này
Đảm bảo bạn đã đăng nhập vào tài khoản GitHub của mình. Nếu bạn chưa có tài khoản GitHub, hãy đăng ký một tài khoản miễn phí trên trang web GitHub
Chia nhánh
9 trên GitHub vào tài khoản GitHub cục bộ của bạn. Nếu bạn cần trợ giúp về quy trình này, hãy tham khảo tài liệu Fork A Repo trên trang web GitHub để biết thêm thông tindocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
Sao chép cục bộ kho lưu trữ
9 rẽ nhánh của bạn [trên GitHub] vào máy của bạn. Để bắt đầu quá trình này, hãy thực hiện một trong hai thao tác sau [trong đódocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
1 là tên tài khoản người dùng trên hệ điều hành của bạn]FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Nếu bạn đã cài đặt ứng dụng GitHub Desktop trên máy của mình
Trong GitHub, nhấp vào nút Sao chép hoặc tải xuống màu xanh lục trên kho lưu trữ rẽ nhánh của bạn, sau đó nhấp vào Mở trong Máy tính để bàn
Trong GitHub Desktop, trước khi nhấp vào Clone trên hộp thoại Clone a Repository, hãy đảm bảo Local Path cho
macOS là
2FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Linux là
3FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Cửa sổ là
4FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Nếu không thì
Mở dấu nhắc dòng lệnh/thiết bị đầu cuối và
5 đến thư mục thích hợp trênFROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
macOS -
6FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Linux -
7FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Windows -
8 [mặc dù sử dụng cửa sổ dòng lệnh Git bash thay vì dấu nhắc lệnh thông thường của Microsoft]FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Chạy lệnh sau để tiếp tục/hoàn thành sao chép repo rẽ nhánh của bạn
9FROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
trong đó
00 là tên tài khoản GitHub của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Tạo dự án Đường ống của bạn trong Jenkins
Quay lại Jenkins, đăng nhập lại nếu cần và nhấp vào tạo công việc mới trong Chào mừng đến với Jenkins
Ghi chú. Nếu bạn không thấy mục này, hãy nhấp vào Mục mới ở trên cùng bên tráiTrong trường Nhập tên mục, hãy chỉ định tên cho dự án Đường ống mới của bạn [e. g.
9]docker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
Cuộn xuống và nhấp vào Đường ống, sau đó nhấp vào OK ở cuối trang
[ Tùy chọn ] Trên trang tiếp theo, chỉ định mô tả ngắn gọn cho Đường ống của bạn trong trường Mô tả [e. g.
02]docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Nhấp vào tab Đường ống ở đầu trang để cuộn xuống phần Đường ống
Từ trường Định nghĩa, chọn tùy chọn Tập lệnh đường ống từ SCM. Tùy chọn này hướng dẫn Jenkins lấy Đường ống của bạn từ Quản lý kiểm soát nguồn [SCM], đây sẽ là kho lưu trữ Git được nhân bản cục bộ của bạn
Từ trường SCM, chọn Git
Trong trường URL Kho lưu trữ, chỉ định đường dẫn thư mục của kho lưu trữ được nhân bản cục bộ của bạn, từ tài khoản người dùng/thư mục chính trên máy chủ của bạn, được ánh xạ tới thư mục
8 của bộ chứa Jenkins - i. edocker run \ --name jenkins-blueocean \[1] --detach \[2] --network jenkins \[3] --env DOCKER_HOST=tcp://docker:2376 \[4] --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \[5] --publish 50000:50000 \[6] --volume jenkins-data:/var/jenkins_home \[7] --volume jenkins-docker-certs:/certs/client:ro \[8] --volume "$HOME":/home \[9] --restart=on-failure \[10] --env JAVA_OPTS="-Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true" \[11] myjenkins-blueocean:2.375.2-1 [12]
Đối với macOS -
04docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Dành cho Linux -
05docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Dành cho Windows -
04docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Nhấp vào Lưu để lưu dự án Đường ống mới của bạn. Bây giờ bạn đã sẵn sàng để bắt đầu tạo
07 của mình, mà bạn sẽ kiểm tra kho lưu trữ Git được nhân bản cục bộ của mìnhdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Tạo Đường ống ban đầu của bạn dưới dạng Jenkinsfile
Bây giờ, bạn đã sẵn sàng để tạo Quy trình tự động hóa việc xây dựng ứng dụng Python của mình với PyInstaller trong Jenkins. Quy trình của bạn sẽ được tạo dưới dạng
docker run \
--name jenkins-docker \[1]
--rm \[2]
--detach \[3]
--privileged \[4]
--network jenkins \[5]
--network-alias docker \[6]
--env DOCKER_TLS_CERTDIR=/certs \[7]
--volume jenkins-docker-certs:/certs/client \[8]
--volume jenkins-data:/var/jenkins_home \[9]
--publish 2376:2376 \[10]
--publish 3000:3000 --publish 5000:5000 \[11]
docker:dind \[12]
--storage-driver overlay2 [13]
07, sẽ được cam kết với kho lưu trữ Git được nhân bản cục bộ của bạn [docker run --name jenkins-docker --detach ^
--privileged --network jenkins --network-alias docker ^
--env DOCKER_TLS_CERTDIR=/certs ^
--volume jenkins-docker-certs:/certs/client ^
--volume jenkins-data:/var/jenkins_home ^
--publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^
docker:dind
9]Đây là nền tảng của "Pipeline-as-Code", coi quy trình phân phối liên tục là một phần của ứng dụng được tạo phiên bản và xem xét giống như bất kỳ mã nào khác. Đọc thêm về Đường ống và Jenkinsfile là gì trong phần Đường ống và Sử dụng Jenkinsfile trong Sổ tay Người dùng
Đầu tiên, tạo một Quy trình ban đầu với giai đoạn "Xây dựng" để thực hiện phần đầu tiên của toàn bộ quy trình sản xuất cho ứng dụng của bạn. Giai đoạn "Xây dựng" này tải xuống hình ảnh Python Docker và chạy nó dưới dạng bộ chứa Docker, từ đó biên dịch ứng dụng Python đơn giản của bạn thành mã byte
Sử dụng trình soạn thảo văn bản hoặc IDE yêu thích của bạn, tạo và lưu tệp văn bản mới với tên
07 tại thư mục gốc của kho lưu trữ Gitdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
9 cục bộ của bạndocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
Sao chép mã Quy trình Khai báo sau đây và dán mã đó vào
07 trống của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
4docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
1Phần có tham số
14 được chỉ định ở đầu khối mã Đường ống này có nghĩa là không có tác nhân toàn cầu nào sẽ được phân bổ để thực hiện toàn bộ Đường ống và mỗi chỉ thị phải chỉ định phần ________0____13 của riêng mình. 2Xác định một [chỉ thị] có tên làdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
18 xuất hiện trên giao diện người dùng Jenkins. 3Tham sốdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
19 này [của tham sốdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
4 của phần] tải xuống hình ảnh Dockerdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
22 [nếu nó chưa có sẵn trên máy của bạn] và chạy hình ảnh này dưới dạng một vùng chứa riêng biệt. Điều này có nghĩa rằngdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Bạn sẽ có các thùng chứa Jenkins và Python riêng biệt chạy cục bộ trong Docker
Bộ chứa Python trở thành bộ chứa mà Jenkins sử dụng để chạy giai đoạn
18 của dự án Đường ống của bạn. Tuy nhiên, thùng chứa này tồn tại trong thời gian ngắn - tuổi thọ của nó chỉ bằng khoảng thời gian thực hiện giai đoạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
18 của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
27 của nó thành các tệp mã byte [mỗi tệp có phần mở rộngdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
28], được đặt vào thư mục không gian làm việc ________0____29 [trong thư mụcdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
30 trong bộ chứa Jenkins]. 5Bước này [của phầndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
32] lưu mã nguồn Python và tệp mã byte đã biên dịch [với phần mở rộngdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
28] từ thư mục không gian làm việcdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
29 để sử dụng trong các giai đoạn saudocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Lưu
07 đã chỉnh sửa của bạn và chuyển giao nó vào kho lưu trữ Gitdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
9 địa phương của bạn. e. g. Trong thư mụcdocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
9, hãy chạy các lệnhdocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
38docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
sau đó
39docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Quay lại Jenkins một lần nữa, đăng nhập lại nếu cần và nhấp vào Open Blue Ocean ở bên trái để truy cập giao diện Blue Ocean của Jenkins
Trong hộp thông báo Công việc này chưa được chạy, nhấp vào Chạy, sau đó nhấp nhanh vào liên kết MỞ xuất hiện nhanh ở phía dưới bên phải để xem Jenkins đang chạy dự án Đường ống của bạn. Nếu bạn không thể nhấp vào liên kết MỞ, hãy nhấp vào hàng trên giao diện chính của Blue Ocean để truy cập tính năng này
Ghi chú. Bạn có thể phải đợi vài phút để lần chạy đầu tiên này hoàn tất. Sau khi tạo một bản sao của chính kho lưu trữ Git
9 cục bộ của bạn, Jenkinsdocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
Ban đầu xếp hàng dự án để chạy trên tác nhân
Chạy giai đoạn
18 [được xác định trongdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
07] trên vùng chứa Python. Trong thời gian này, Python sử dụng mô-đundocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
43 để biên dịch mã ứng dụng Python của bạn và thư việndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
27 của nó thành mã byte, được lưu trữ trong thư mục không gian làm việcdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
29 [trong thư mục chính của Jenkins]docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Giao diện Blue Ocean chuyển sang màu xanh lục nếu Jenkins biên dịch thành công ứng dụng Python của bạn
Nhấp vào X ở trên cùng bên phải để quay lại giao diện chính của Blue Ocean
Thêm giai đoạn thử nghiệm vào Quy trình của bạn
Quay lại trình soạn thảo văn bản/IDE của bạn và đảm bảo rằng
07 của bạn đang mởdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Sao chép và dán cú pháp Declarative Pipeline sau đây ngay dưới giai đoạn
18 củadocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
07 của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
5docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
để bạn kết thúc với
6docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
1Xác định một [chỉ thị] có tên là
50 xuất hiện trên giao diện người dùng Jenkins. 2Tham sốdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
19 này [của tham sốdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
4 của phần] tải xuống hình ảnh Docker ________0____54 [nếu hình ảnh này chưa có sẵn trên máy của bạn] và chạy hình ảnh này dưới dạng một vùng chứa riêng biệt. Điều này có nghĩa rằngdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
Bạn sẽ có các thùng chứa Jenkins và pytest riêng biệt chạy cục bộ trong Docker
Vùng chứa pytest trở thành vùng chứa mà Jenkins sử dụng để chạy giai đoạn
50 của dự án Đường ống của bạn. Tuổi thọ của thùng chứa này kéo dài trong khoảng thời gian thực hiện giai đoạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
50 của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
59 của pytest trêndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
60, chạy một tập hợp các bài kiểm tra đơn vị [được định nghĩa trongdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
61] trên hàm ________0____62 của thư viện "calc" [được sử dụng bởi ứng dụng Python đơn giản của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
63]. Cácdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Tùy chọn
64 làm chodocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
59 tạo báo cáo JUnit XML, báo cáo này được lưu vàodocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
66 [trong thư mụcdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
30 trong bộ chứa Jenkins]docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
59 ở trên] và hiển thị kết quả thông qua giao diện Jenkins. Trong Blue Ocean, kết quả có thể truy cập được thông qua trang Thử nghiệm của quá trình chạy Đường ống. Điều kiệndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
71 của phần có chứa bướcdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
68 này đảm bảo rằng bước này luôn được thực hiện khi hoàn thành giai đoạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
50, bất kể kết quả của giai đoạn đó là gìdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Lưu
07 đã chỉnh sửa của bạn và chuyển giao nó vào kho lưu trữ Gitdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
9 địa phương của bạn. e. g. Trong thư mụcdocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
9, hãy chạy các lệnhdocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
77docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
sau đó
78docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Quay lại Jenkins một lần nữa, đăng nhập lại nếu cần và đảm bảo bạn đã truy cập giao diện Blue Ocean của Jenkins
Nhấp vào Chạy ở trên cùng bên trái, sau đó nhấp nhanh vào liên kết MỞ xuất hiện nhanh ở phía dưới bên phải để xem Jenkins đang chạy dự án Đường ống đã sửa đổi của bạn. Nếu bạn không thể nhấp vào liên kết MỞ, hãy nhấp vào hàng trên cùng của giao diện Blue Ocean để truy cập tính năng này
Ghi chú. Có thể mất vài phút để tải xuống hình ảnh Docker
54 [nếu việc này chưa được thực hiện]docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Nếu Quy trình sửa đổi của bạn chạy thành công, đây là giao diện của Blue Ocean sẽ như thế nào. Chú ý thêm giai đoạn "Test". Bạn có thể nhấp vào vòng tròn giai đoạn "Xây dựng" trước đó để truy cập đầu ra từ giai đoạn đóNhấp vào X ở trên cùng bên phải để quay lại giao diện chính của Blue Ocean
Thêm giai đoạn phân phối cuối cùng vào Quy trình của bạn
Quay lại trình soạn thảo văn bản/IDE của bạn và đảm bảo rằng
07 của bạn đang mởdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Sao chép và dán cú pháp Declarative Pipeline sau đây ngay bên dưới giai đoạn
50 củadocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
07 của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
7docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
và thêm một tùy chọn
83 để bạn kết thúc vớidocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
8docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
1Xác định một [chỉ thị] có tên là
85 xuất hiện trên giao diện người dùng Jenkins. 2Khốidocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
86 này xác định hai biến sẽ được sử dụng sau này trong giai đoạn 'Phân phối'. 3Bước này [của phầndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
32] tạo một thư mục con mới được đặt tên theo số bản dựng. Chương trình cuối cùng sẽ được tạo trong thư mục đó bởi pyinstaller.docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
89 là một trong những Jenkins được xác định trước và có sẵn trong tất cả các công việc. 4Bước này [của phầndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
32] khôi phục mã nguồn Python và các tệp mã byte đã biên dịch [với phần mở rộngdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
28] từ hình ảnh lưu trữ đã lưu trước đó [nếu nó chưa có sẵn trên máy của bạn] và chạy hình ảnh này dưới dạng một bộ chứa riêng. Điều này có nghĩa rằngdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Bạn sẽ có các thùng chứa Jenkins và PyInstaller [dành cho Linux] riêng chạy cục bộ trong Docker
Bộ chứa PyInstaller trở thành bộ chứa mà Jenkins sử dụng để chạy giai đoạn
85 của dự án Đường ống của bạn. Tuổi thọ của thùng chứa này kéo dài trong khoảng thời gian thực hiện giai đoạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
85 của bạndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
97 [trong bộ chứa PyInstaller] trên ứng dụng Python đơn giản của bạn. Điều này kết hợp ứng dụng Pythondocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
98 của bạn thành một tệp thực thi độc lập duy nhất [thông qua tùy chọndocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
99] và xuất tệp này vào thư mục không gian làm việcdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
00 [trong thư mục chính của Jenkins]. Mặc dù bước này bao gồm một lệnh duy nhất, theo nguyên tắc chung, bạn nên giữ mã Quy trình của mình [i. e.docker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
07] càng gọn gàng càng tốt và đặt các bước xây dựng phức tạp hơn [đặc biệt đối với các giai đoạn bao gồm 2 bước trở lên] vào các tệp shell script riêng biệt như tệpdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
02. Điều này cuối cùng làm cho việc duy trì mã Đường ống của bạn dễ dàng hơn, đặc biệt nếu Đường ống của bạn phức tạp hơn. 6Bước này [được cung cấp như một phần của lõi Jenkins] lưu trữ tệp thực thi độc lập [được tạo bởi lệnhdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
97 ở trên tạidocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
05 trong thư mục không gian làm việc của nhà Jenkins] và hiển thị tệp này thông qua giao diện Jenkins. Trong Blue Ocean, các hiện vật được lưu trữ như thế này có thể truy cập được thông qua trang Hiện vật của một quy trình chạy Đường ống. Điều kiệndocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
07 của phần có chứa bướcdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
03 này đảm bảo rằng bước này được thực hiện khi hoàn thành giai đoạndocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
85 chỉ khi giai đoạn này hoàn thành thành côngdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
Lưu
07 đã chỉnh sửa của bạn và chuyển giao nó vào kho lưu trữ Gitdocker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
9 địa phương của bạn. e. g. Trong thư mụcdocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
9, hãy chạy các lệnhdocker run --name jenkins-docker --detach ^ --privileged --network jenkins --network-alias docker ^ --env DOCKER_TLS_CERTDIR=/certs ^ --volume jenkins-docker-certs:/certs/client ^ --volume jenkins-data:/var/jenkins_home ^ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 ^ docker:dind
77docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
sau đó
14docker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
Quay lại Jenkins một lần nữa, đăng nhập lại nếu cần và đảm bảo bạn đã truy cập giao diện Blue Ocean của Jenkins
Nhấp vào Chạy ở trên cùng bên trái, sau đó nhấp nhanh vào liên kết MỞ xuất hiện nhanh ở phía dưới bên phải để xem Jenkins đang chạy dự án Đường ống đã sửa đổi của bạn. Nếu bạn không thể nhấp vào liên kết MỞ, hãy nhấp vào hàng trên cùng của giao diện Blue Ocean để truy cập tính năng này
Ghi chú. Có thể mất vài phút để tải xuống hình ảnh Docker
15 [nếu việc này chưa được thực hiện]docker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
Nếu Quy trình sửa đổi của bạn chạy thành công, đây là giao diện của Blue Ocean sẽ như thế nào. Lưu ý giai đoạn "Giao hàng" bổ sung. Nhấp vào vòng kết nối giai đoạn "Thử nghiệm" và "Xây dựng" trước đó để truy cập kết quả đầu ra từ các giai đoạn đóĐây là kết quả đầu ra của giai đoạn "Phân phối" sẽ như thế nào, hiển thị cho bạn kết quả của việc PyInstaller gộp ứng dụng Python của bạn thành một tệp thực thi độc lập
Nhấp vào X ở trên cùng bên phải để quay lại giao diện chính của Blue Ocean, trong đó liệt kê các hoạt động Đường ống trước đó của bạn theo thứ tự thời gian đảo ngược
Theo dõi [tùy chọn]
Nếu sử dụng Linux, bạn có thể thử chạy ứng dụng
docker run \
--name jenkins-docker \[1]
--rm \[2]
--detach \[3]
--privileged \[4]
--network jenkins \[5]
--network-alias docker \[6]
--env DOCKER_TLS_CERTDIR=/certs \[7]
--volume jenkins-docker-certs:/certs/client \[8]
--volume jenkins-data:/var/jenkins_home \[9]
--publish 2376:2376 \[10]
--publish 3000:3000 --publish 5000:5000 \[11]
docker:dind \[12]
--storage-driver overlay2 [13]
63 độc lập mà bạn đã tạo cục bộ bằng PyInstaller trên máy của mình. Để làm điều nàyTừ giao diện chính của Blue Ocean, hãy truy cập vào lần chạy Đường ống cuối cùng mà bạn đã thực hiện. Để thực hiện việc này, hãy nhấp vào hàng trên cùng [đại diện cho lần chạy Quy trình gần đây nhất] trên trang Hoạt động chính của Đại dương xanh
Trên trang kết quả của quá trình chạy Đường ống, nhấp vào Hiện vật ở trên cùng bên phải để truy cập trang Hiện vật
Trong danh sách tạo phẩm, hãy nhấp vào biểu tượng mũi tên xuống ở ngoài cùng bên phải của mục tạo tác dist/add2vals để tải xuống tệp thực thi độc lập vào thư mục "Tải xuống" của trình duyệt của bạn
Quay lại lời nhắc thiết bị đầu cuối của hệ điều hành của bạn,
5 đến thư mục "Tải xuống" của trình duyệt của bạnFROM jenkins/jenkins:2.375.2 USER root RUN apt-get update && apt-get install -y lsb-release RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \ //download.docker.com/linux/debian/gpg RUN echo "deb [arch=$[dpkg --print-architecture] \ signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \ //download.docker.com/linux/debian \ $[lsb_release -cs] stable" > /etc/apt/sources.list.d/docker.list RUN apt-get update && apt-get install -y docker-ce-cli USER jenkins RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"
Làm cho tệp
63 có thể thực thi được - i. e.docker run \ --name jenkins-docker \[1] --rm \[2] --detach \[3] --privileged \[4] --network jenkins \[5] --network-alias docker \[6] --env DOCKER_TLS_CERTDIR=/certs \[7] --volume jenkins-docker-certs:/certs/client \[8] --volume jenkins-data:/var/jenkins_home \[9] --publish 2376:2376 \[10] --publish 3000:3000 --publish 5000:5000 \[11] docker:dind \[12] --storage-driver overlay2 [13]
19docker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
Chạy lệnh
20 và làm theo hướng dẫn do ứng dụng của bạn cung cấpdocker run --name jenkins-docker --rm --detach \ --privileged --network jenkins --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 3000:3000 --publish 5000:5000 --publish 2376:2376 \ docker:dind --storage-driver overlay2
kết thúc
Tốt lắm. Bạn vừa sử dụng Jenkins để xây dựng một ứng dụng Python đơn giản
Các giai đoạn "Xây dựng", "Thử nghiệm" và "Phân phối" mà bạn đã tạo ở trên là cơ sở để xây dựng các ứng dụng Python phức tạp hơn trong Jenkins, cũng như các ứng dụng Python tích hợp với các ngăn xếp công nghệ khác
Bởi vì Jenkins cực kỳ có thể mở rộng, nên nó có thể được sửa đổi và định cấu hình để xử lý thực tế mọi khía cạnh của việc điều phối và tự động hóa bản dựng
Để tìm hiểu thêm về những gì Jenkins có thể làm, hãy xem
Trang tổng quan về Hướng dẫn cho các hướng dẫn giới thiệu khác
Sổ tay Người dùng để biết thêm thông tin chi tiết về cách sử dụng Jenkins, chẳng hạn như Đường ống [cụ thể là cú pháp Đường ống] và giao diện Blue Ocean
Blog Jenkins cho các sự kiện mới nhất, các hướng dẫn và cập nhật khác
Vui lòng gửi phản hồi của bạn về trang này thông qua biểu mẫu nhanh này
Ngoài ra, nếu bạn không muốn hoàn thành biểu mẫu nhanh, bạn chỉ cần cho biết trang này có hữu ích không?