이 기사는 Maven Docker 이미지를 사용하는 기술을 소개하고 다음과 같이 다음과 같이 공유합니다.
Maven은 현재 가장 인기있는 Java 프로젝트 관리 도구 중 하나이며 강력한 패키지 의존성 관리 및 응용 프로그램 구성 기능을 제공합니다.
Docker는 Java 응용 프로그램을 관리하고 빌드하는 데 사용할 수있는 공식 Maven 이미지를 제공합니다. Maven 도구를 직접 설치하는 것과 비교하여 Docker 이미지를 사용하면 휴대 성이 우수하며 쉽게 전환 할 수 있으며, 이는 지속적인 통합 중에 사용하기에 이상적입니다.
Maven 공식 거울을 사용하려면 사용 설명서를 참조하십시오.
알리바바 클라우드를 사용하여 가속
국내 네트워크에서 Maven의 공식 창고의 다운로드 속도는 실제로 가슴 아픈 일입니다. Alibaba Cloud의 Maven 이미지를 사용하면 소프트웨어 패키지의 다운로드 속도가 크게 향상 될 수 있습니다.
공식 Maven 이미지를 기반으로 Alibaba Cloud 이미지 구성을 추가 할 수 있습니다. 코드는 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/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd "> <localRepository>/usr/share/maven/ref/repository </localrepository> <mirror> <!-이것은/public-> <id> aliyun-nexus </id> </id> <Url> http://maven.aliyun.com/nexus/content/groups/public/ </url> </mirror> <mirror> <!-이것은 아래 프로파일의 공개 스냅 샷 저장소를 다른 Nexus 그룹으로 지시하는 데 사용됩니다. <mirrorof> public-snapshots </mirrorof> <url> http://maven.aliyun.com/nexus/content/repositories/snapshots/ </url> </mirror> </mirrors> </settings>
Alibaba Cloud Container Service는 Registry.cn-hangzhou.aliyuncs.com/acs/maven을 직접 사용하기 위해 사전 구축 된 Docker 이미지를 제공합니다.
MVN 명령을 사용하여 응용 프로그램을 작성하는 것과 같은 현재 디렉토리에서 다음 명령을 직접 실행할 수 있습니다.
코드를 다음과 같이 복사하십시오 : Docker Run-IT ---rm -name maven -v "$ (pwd)":/usr/src/app -w/usr/src/app registry.cn-hangzhou.aliyuncs.com/acs/maven mvn clean 설치
다운로드 된 Maven 저장소를 캐시 할 수 있으려면 Docker의 파일 볼륨을 사용하여 구현할 수 있습니다.
먼저 다음 명령을 실행하여 "Maven-Repo"라는 파일 볼륨을 만듭니다.
Docker Volume을 생성-이름 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 install
이런 식으로 Maven 저장소는 매번 다운로드되지 않습니다.
DockerFile을 최적화하여 빌드 속도를 향상시킵니다
Dockerfile에 응용 프로그램을 구축하고 Docker Construction 동안 계층 적 캐싱 메커니즘을 사용하여 빌드 속도를 향상시킬 수 있습니다.
다음은 샘플 dockerfile.build 파일입니다
registry.cn-hangzhou.aliyuncs.com/acs/maven:3-jdk-8env my_home =/usr/inprun mkdir -p $ my_homeworkdir $ my_homeadd pom.xml $ my_home# wayrun의 모든 다운로드를 얻으십시오. [ "/usr/local/bin/bin/mvn-entrypoint.sh","mvn","verify","clean",---fail-never"= sourceadd를 추가하십시오. $ my_home# run maven verifyrun [ "/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 build -t builder -img -f dockerfile.build .docker 만들기 -이름 Builder Builder -Imgdocker CP Builder :/usr/src/app/target ./target
현재 Maven Construction의 결과는 현재 디렉토리의 "대상"하위 디렉토리로 복사됩니다.
그 후, 우리는 다른 dockerfile을 사용하여 응용 프로그램 이미지를 작성할 수 있습니다. 공간이 제한되어 있으면 세부 사항을 다루지 않을 것입니다.
요약
이 기사는 Maven을 예로 사용하여 응용 프로그램 구성에서 Docker를위한 몇 가지 일반적인 기술을 소개합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.