Maven Docker 미 러 사용 방법 자세히 알 아 보기

5576 단어 MavenDocker 미 러
본 고 는 Maven Docker 미 러 사용 기 교 를 소개 하고 여러분 에 게 공유 합 니 다.구체 적 으로 다음 과 같 습 니 다.

Maven 은 현재 가장 유행 하 는 자바 프로젝트 관리 도구 중 하나 로 강력 한 패키지 의존 관리 와 응용 구축 기능 을 제공 합 니 다.
Docker 는 자바 애플 리 케 이 션 을 관리 하고 구축 할 수 있 는공식 Maven 미 러.을 제공 합 니 다.Maven 도 구 를 직접 설치 하 는 것 보다 Docker 미 러 를 사용 하 는 것 이 이식 성 이 뛰 어 나 버 전 전환 을 편리 하 게 할 수 있어 지속 적 인 통합 과정 에서 사용 하기에 적합 하 다.
Maven 공식 미 러 의 용법 은 참고 할 수 있 습 니 다문서 사용
아 리 운 가속 사용
Maven 공식 창고 의 국내 인터넷 다운로드 속 도 는 눈물 이 나 지 않 는 다.아 리 클 라 우 드 의 Maven 미 러 를 이용 하면 패키지 다운로드 속 도 를 크게 높 일 수 있다.
우 리 는 공식 Maven 미 러 를 바탕 으로 아 리 운 미 러 설정 을 추가 할 수 있다.그 코드 는https://github.com/AliyunContainerService/maven-image에서 얻 을 수 있다.
설정 파일 settings.xml 는 다음 과 같 습 니 다.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
      https://maven.apache.org/xsd/settings-1.0.0.xsd">
 <localRepository>/usr/share/maven/ref/repository</localRepository>
 <mirrors>
 <mirror>
  <!--This sends everything else to /public -->
  <id>aliyun-nexus</id>
  <mirrorOf>*</mirrorOf> 
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 </mirror>
 <mirror>
  <!--This is used to direct the public snapshots repo in the 
   profile below over to a different nexus group -->
  <id>aliyun-nexus-public-snapshots</id>
  <mirrorOf>public-snapshots</mirrorOf> 
  <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
  </mirror>
 </mirrors>
</settings>
아 리 클 라 우 드 용기 서 비 스 는 미리 구 축 된 Docker 미 러 를 제공 하여 registry.cn-hangzhou.aliyuncs.com/acs/maven 을 직접 사용 할 수 있 습 니 다.
화면 음악 명령 을 사용 하 는 것 처럼 현재 디 렉 터 리 에서 다음 명령 을 직접 실행 하여 응용 프로그램 을 구축 할 수 있 습 니 다.
docker run -it --rm --name maven -v "$(pwd)":/usr/src/app -w /usr/src/app registry.cn-hangzhou.aliyuncs.com/acs/maven mvn clean install
다운로드 한 maven 창 고 를 캐 시 할 수 있 기 를 원한 다 면 Docker 의 파일 볼 륨 을 이용 하여 구현 할 수 있 습 니 다.
먼저 다음 명령 을 실행 하여"maven-repo"라 는 파일 볼 륨 을 만 듭 니 다.

docker volume create --name maven-repo
다음 호출 에서 Maven 미 러 창고 다운로드 디 렉 터 리 에 마 운 트 합 니 다.
docker run -it --rm --name maven -v "$(pwd)":/usr/src/app -v maven-repo:/usr/share/maven/ref -w /usr/src/app registry.cn-hangzhou.aliyuncs.com/acs/maven mvn clean install
이렇게 하면 Maven 창 고 는 매번 다운로드 하지 않 습 니 다.
Dockerfile 최적화 구축 속도 향상
저 희 는 Dockerfile 에서 응용 프로그램 을 구축 하고 Docker 가 구축 할 때의 레이 어 링 캐 시 체 제 를 이용 하여 구축 속 도 를 높 일 수 있 습 니 다.
다음은 예제 Dockerfile.build 파일 입 니 다.

FROM registry.cn-hangzhou.aliyuncs.com/acs/maven:3-jdk-8

ENV MY_HOME=/usr/src/app
RUN mkdir -p $MY_HOME
WORKDIR $MY_HOME
ADD pom.xml $MY_HOME

# get all the downloads out of the way
RUN ["/usr/local/bin/mvn-entrypoint.sh","mvn","verify","clean","--fail-never"]

# add source
ADD . $MY_HOME

# run maven verify
RUN ["/usr/local/bin/mvn-entrypoint.sh","mvn","verify"]

그 중의 중요 한 기 교 는 먼저 pom.xml 를 작업 디 렉 터 리 에 추가 하고 Maven 명령 을 이용 하여 응용 프로그램 에 필요 한 jar 패 키 지 를 다운로드 한 다음 에 응용 소스 파일 을 추가 하여 컴 파일 하 는 것 이다.이렇게 하면 pom.xml 가 업데이트 되 지 않 으 면 의존 하 는 jar 패 키 지 를 다시 다운로드 하지 않 고 미 러 구축 속 도 를 크게 가속 화 할 수 있 습 니 다.
우 리 는 다음 명령 을 통 해 응용 프로그램 을 컴 파일 할 수 있다.

docker build -t builder-img -f Dockerfile.build .
컴 파일 및 Docker 미 러 구축 분리 적용
정적 컴 파일 형 언어 에 대해 서 는 컴 파일 과정 과 미 러 구축 과정 을 분리 해 야 합 니 다.주로 다음 과 같은 두 가지 고려 가 있다.
  • 최종 적 으로 생 성 된 Docker 미 러 는 소스 코드
  • 를 포함 하지 말 아야 합 니 다.
  • 최종 생 성 된 Docker 미 러 는 컴 파일 시 도구
  • 를 포함 하지 않도록 최소 화해 야 합 니 다.
    우 리 는 컴 파일 결 과 를 Docker 미 러 에서 복사 할 수 있 습 니 다.방법 은 다음 과 같 습 니 다.
    
    docker build -t builder-img -f Dockerfile.build .
    docker create --name builder builder-img
    docker cp builder:/usr/src/app/target ./target
    이 때 maven 구축 결 과 는 현재 디 렉 터 리 의"target"하위 디 렉 터 리 아래로 복사 되 었 습 니 다.
    그 후에 우 리 는 다른 Dockerfile 을 이용 하여 응용 미 러 를 구축 할 수 있 습 니 다.편폭 이 제한 되 어 더 이상 군말 하지 않 는 다.
    총결산
    본 고 는 Maven 을 예 로 들 어 Docker 가 응용 구축 에서 흔히 볼 수 있 는 기 교 를 소개 했다.
  • 국내 미 러 사이트 가속 패키지 다운로드:아 리 운 과 아 리 그룹 은 대량의 오픈 소스 프로젝트 의 패키지 관리 미 러 사 이 트 를 제공 하고 아 리 클 라 우 드 용기 서비스 오픈 소스 프로젝트https://github.com/AliyunContainerService에서 가속 능력 을 가 진 Ruby/python/node/Maven 기본 미 러 를 참고 할 수 있 습 니 다.
  • Docker 미 러 구축 과정 에서 코드 변화 로 인해 패 키 지 를 반복 적 으로 다운로드 하 는 것 을 방지 하기 위해 애플 리 케 이 션 프로필 을 Dockerfile 에 추가 하고 컴 파일 하기 전에 패 키 지 를 미리 다운로드 할 수 있다.예 를 들 어 Ruby 의 Gemfile,Python 의 requirements.txt,NodeJs 의 package.json 과 유사 한 방법 을 사용 할 수 있 습 니 다.이렇게 하면 Docker 의 레이 어 링 캐 시 체 제 를 이용 하여 미 러 구축 과정 을 가속 화 할 수 있 습 니 다.
  • 응용 컴 파일 은 Docker 미 러 구축 과 분리 되 어야 합 니 다
  • 이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기