有时docker的官方maven镜像不能满足我们需求时,我们需要自定义maven的settings.xml文件,加上阿里云的映射和自己的私服
-
clone阿里云maven-image仓库:git@github.com:AliyunContainerService/maven-image.git
-
进入3-jdk-8目录,修改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>
<servers>
<server>
<id>youseniu-releases</id>
<username>xxx</username>
<password>xxxx</password>
</server>
<server>
<id>youseniu-snapshots</id>
<username>xxxx</username>
<password>xxxxx</password>
</server>
</servers>
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/central</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>youseniu</id>
<repositories>
<repository>
<id>youseniu</id>
<name>youseniu private nexus</name>
<url>http://ysnnexus.liyuchang.xin/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>youseniu</id>
<name>youseniu private nexus</name>
<url>http://ysnnexus.liyuchang.xin/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>youseniu</activeProfile>
</activeProfiles>
</settings>
- build镜像
#build
docker build --tag liyc/maven:3.5.2-jdk-8 .
#push
docker push liyc/maven:3.5.2-jdk-8
#pull
docker pull liyc/maven:3.5.2-jdk-8
- 使用新镜像运行maven项目
#进入项目所在目录
cd /maven_project_home
#运行
docker run --name testproject
-it --rm -p 8080:8080
-v "$(pwd)":/usr/src/mymaven -v maven-repo:/usr/share/maven/ref/repository
-w /usr/src/mymaven --restart=on-failure liyc/maven:3.5.4-jdk-8
mvn spring-boot:run -Duser.timezone=Asia/Shanghai