>  기사  >  운영 및 유지보수  >  기술 솔루션: 파이프라인은 Docker 컨테이너를 통합합니다.

기술 솔루션: 파이프라인은 Docker 컨테이너를 통합합니다.

WBOY
WBOY앞으로
2022-02-09 18:16:532705검색

이 기사는 주로 Docker 컨테이너를 통합하는 파이프라인과 관련된 문제인 파이프라인 상속 Docker 사용에 대한 관련 지식을 제공합니다.

기술 솔루션: 파이프라인은 Docker 컨테이너를 통합합니다.

이 문서에서는 주로 파이프라인 통합 Docker의 사용법을 설명합니다.

1. 배경 설명

마이크로서비스 아키텍처는 현재 주류 기술 선택으로, 비즈니스가 구현되면 개발 중이든 테스트 중이든 온라인 기반이든 관계없이 많은 비즈니스 서비스가 있을 것입니다. on 수동 편집을 통한 패키징 서비스의 운영 비용은 매우 높을 뿐만 아니라 오류가 발생하기 쉽습니다.

파이프라인 접근 방식을 통해 서비스 이미지 구성이 원클릭 트리거 실행으로 조정되어 마이크로서비스 아키텍처에 필요한 기능 모듈인 자동화된 관리 프로세스를 달성합니다.

2. 프로세스 설계

이 문서의 프로세스 노드는 주로 패키지 애플리케이션 Jar 패키지에 대한 것입니다. docker 모듈의 처리 흐름은 주로 이미지 구성 관리 및 컨테이너 작업입니다. Jar包,在docker模块中的处理流程,主要是镜像构建管理与容器运行:

  • 构建docker文件目录与内容;
  • 拷贝Jar包,创建Dockerfile脚本文件;
  • 执行docker镜像构建,推送云仓库;
  • 拉取镜像文件并运行docker容器;

整个流程的都放在Pipeline流水线中,衔接在本地Jar包生成之后。

三、实现过程

1、插件安装

首先安装流程中Docker集成的相关插件:Docker PipelineDocker pluginCloudBees Docker Hub/Registry Notification

在之前的流水线篇幅中,已经通过流水线完成Gitee仓库代码pull和本地打包,下面开始处理docker环节。

2、镜像构建脚本

关于Dockerfile的脚本语法也可以参考之前docker篇幅,下面看流水线中的用法:

    environment {
        docker_directory = 'docker-app'
        docker_repository = '仓库URL'
    }
    
        stage('Dockerfile') {
            steps {
                sh '''
                rm -rf ${docker_directory}
                mkdir -p ${docker_directory}
                cp auto-client/target/auto-client-1.0-SNAPSHOT.jar ${docker_directory}/auto-client.jar
                cd ${docker_directory}
cat>Dockerfile<<EOF
FROM java:8
MAINTAINER cicadasmile
VOLUME /data/docker/logs
ADD auto-client.jar application.jar
ENTRYPOINT ["java","-Dspring.profiles.active=dev","-Djava.security.egd=file:/dev/./urandom","-jar","/application.jar"]
EOF
                cat Dockerfile
                '''
                echo "create Dockerfile success"
            }
        }

脚本说明:

  • 在流水线的工作空间创建目录docker-app
  • 每次执行都清空一次docker目录,再把Jar包和Docker脚本放进去;
  • cat-EOF-EOF:即创建Dockerfile文件,并把中间的内容写入;
  • 脚本中的内容必须在文件中顶行写入;

3、打包推送

这里即进入docker目录,执行镜像打包的操作,并把镜像推送到云端仓库,很多仓库都是私有的,需要身份验证,通过配置凭据去访问:

stage('DockerImage'){
    steps {
        script {
            dir("${docker_directory}") {
                sh 'ls'
                docker.withRegistry("${docker_directory}", '访问凭据') {
                   docker.build("doc-line-app:latest").push()
                }
            }
            echo "build DockerImage success"
        }
    }
}

4、凭据配置

打开Manage Jenkins界面,Manage Credentials

  • Docker 파일 디렉터리 및 콘텐츠 빌드 ;
  • Jar 패키지를 복사하고 Dockerfile 스크립트 파일을 생성합니다.
  • Docker 이미지 생성을 실행하고 클라우드 웨어하우스에 푸시합니다. >
  • 이미지 파일을 가져오고 docker 컨테이너를 실행합니다.
전체 프로세스는 로컬 Jar 패키지가 생성된 후 연결되는 파이프라인에 배치됩니다.

3. 구현 과정

1. 플러그인 설치

먼저 프로세스에서 Docker가 통합한 관련 플러그인을 설치합니다: Docker Pipeline, Docker 플러그인 , CloudBees Docker 허브/레지스트리 알림.

파이프라인의 이전 섹션에서는 Gitee Warehouse 코드 풀 및 로컬 패키징이 파이프라인을 통해 완료되었습니다. 다음으로 Docker 링크 처리를 시작하겠습니다.

2. 이미지 구성 스크립트

Dockerfile의 스크립트 구문은 이전 docker 기사를 참조할 수도 있습니다. 파이프라인에서의 사용법을 살펴보겠습니다.

GitEE·地址
https://gitee.com/cicadasmile/butte-auto-parent
Wiki·地址
https://gitee.com/cicadasmile/butte-java-note
스크립트 설명:
  • 파이프라인 공간 생성 디렉터리 docker-app에서 작업합니다.
  • 실행될 때마다 docker 디렉터리를 비운 다음 Jar 패키지와 Docker 스크립트를 여기에 넣습니다.
  • cat-EOF -EOF: Dockerfile을 생성하고 중간 내용을 작성합니다.
  • 스크립트의 내용은 파일의 맨 윗줄에 작성해야 합니다. /ul>

    3. 패키징 푸시


    여기에서 docker 디렉터리를 입력하고, 이미지 패키징 작업을 수행하고, 이미지를 클라우드 웨어하우스에 푸시합니다. 많은 웨어하우스는 자격 증명을 구성하여 액세스해야 합니다. rrreee

    4. 자격 증명 구성

    🎜 Jenkins 관리 인터페이스, 자격 증명 관리 옵션을 엽니다. 🎜🎜🎜🎜🎜다음 구성 프로세스를 따르세요. 🎜🎜🎜🎜 4. 소스 코드 주소🎜rrreee🎜추천 학습: "🎜docker video tutorial🎜"🎜🎜

위 내용은 기술 솔루션: 파이프라인은 Docker 컨테이너를 통합합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제