Maven Docker 미 러 사용 방법 자세히 알 아 보기
5576 단어 MavenDocker 미 러
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 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 가 응용 구축 에서 흔히 볼 수 있 는 기 교 를 소개 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nexus에서 자체 Maven 리포지토리를 구축하고 sbt에서 사용Scala 현장에서 프로젝트 종속성을 폐쇄된 Maven 리포지토리로 관리할 수 없는가 하는 이야기가 오르기 때문에, 일단 로컬상에서 간이로 검증한 내용을 비망으로 남깁니다. 프로덕션 용 리포지토리 서버는 별도로 현장...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.