Maven 플러그 인 Docker 미 러 구축 실현 절차
마이크로 서비스 구조 에서 마이크로 서 비 스 는 좋 은 디자인 과 구조 이념 을 가 져 오 는 동시에 운영 상의 추가 복잡성 도 가 져 왔 다.특히 서비스 배치 와 서비스 모니터링 에 있어 서.단일 응용 은 집중 식 으로 하나의 단일 체 를 함께 달 리 는 것 으로 배치 와 관 리 를 할 때 매우 간단 하 다.한편,마이크로 서 비 스 는 그물 모양 으로 분포 되 어 있 고 많은 서 비 스 를 유지 하고 관리 해 야 하 며 이 를 배치 하고 유지 할 때 비교적 복잡 하 다.
다음은 Dev 의 관점 에서 Ops 의 작업 을 살 펴 보 겠 습 니 다.Dev 에서 코드 를 제출 하고 통합 테스트 를 완성 하 는 일련의 절 차 는 다음 과 같 습 니 다.
본 고 는 주로 두 번 째 단 계 를 주목 하고 Dev 로 서 Maven 플러그 인 을 사용 하여 Docker 미 러 를 구축 합 니 다.
절차
환경.
필자 의 컴퓨터 시스템 은 MacOS 로 다음 절 차 를 진행 하기 전에 먼저 조건 을 갖 추 었 다.
docker 는 기본적으로 개인 복 으로 https 지원 이 필요 하기 때문에 제 가 있 기 전에 개인 복 으로 https 지원 을 했 기 때문에 설정 할 필요 가 없습니다.
pom 설정
pom 파일 에 해당 하 는 플러그 인 을 도입 해 야 합 니 다.docker-maven-plugin 은 세 가지 가 있 습 니 다.spotify,fabric8io 와 bibryam 입 니 다.그 중에서 도 첫 번 째 모델 이 가장 유행 하고 자료 도 많아 서 첫 번 째 모델 을 선택 하 는 것 을 주저 하지 않 는 다.
플러그 인 은 두 가지 사용 방식 이 있 습 니 다.하 나 는 pom 설정 에서 baseImage 와 entry Point 를 직접 지정 하 는 것 입 니 다.다른 하 나 는 복잡 한 구축 에 적합 합 니 다.dockerfile 을 사용 하려 면 설정 에서 dockerfile 의 위 치 를 지정 해 야 합 니 다.앞의 것 은 비교적 간단 합 니 다.여 기 는 생략 하고 두 번 째 설정 을 말씀 드 리 겠 습 니 다.
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${maven.docker.version}</version>
<!-- phase-->
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- , build、imageName、imageTag, -->
<skipDocker>${docker.skip.build}</skipDocker>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!-- tag, -->
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<forceTags>true</forceTags>
<env>
<TZ>Asia/Shanghai</TZ>
</env>
<!-- -->
<runs>
<run>ln -snf /usr/share/zoneinfo/$TZ /etc/localtime</run>
<run>echo $TZ > /etc/timezone</run>
</runs>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--push hub-->
<serverId>docker-registry</serverId>
</configuration>
</plugin>
${maven.docker.version}
,${docker.skip.build}
,${docker.image.prefix}
모두 설정 가능 한 변수 입 니 다.${project.basedir}
,${project.build.directory}
,${project.build.finalName}
,${project.version}
각각 프로젝트 루트 디 렉 터 리,구축 디 렉 터 리,포장 후 생 성 된 결과 이름,프로젝트 버 전 번호 에 대응 합 니 다.위의 pom 플러그 인 설정 은 dockerfile 의 위치 와 미 러 의 이름 규칙 을 지정 합 니 다.docker 의 build 목 표를 인 스타 그램 이라는 phase 에 연결 합 니 다.
dockerfile
FROM java:8
COPY target/maven-docker-image-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar" ,"/app.jar"]
setting.xmlpom 플러그 인 에 server Id 설정 이 있 습 니 다.이 설정 은 필요 합 니 다.이미 지 를 개인 hub 에 업로드 해 야 합 니 다.위 설정 과 같이-DpushImage 만 추가 하면 됩 니 다.server Id 는 maven 의 프로필 setting.xml 에 대응 하고 setting.xml 에 추 가 된 설정 입 니 다.
<server>
<id>docker-registry</id>
<username> </username>
<password> </password>
<configuration>
<email> </email>
</configuration>
</server>
결실이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nexus에서 자체 Maven 리포지토리를 구축하고 sbt에서 사용Scala 현장에서 프로젝트 종속성을 폐쇄된 Maven 리포지토리로 관리할 수 없는가 하는 이야기가 오르기 때문에, 일단 로컬상에서 간이로 검증한 내용을 비망으로 남깁니다. 프로덕션 용 리포지토리 서버는 별도로 현장...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.