公司为了省钱,除了一台服务器能够上网之外,其余的都是内网服务器,我把 jenkins 装在内网服务器下,用 Dockder 来搭建的,所以就出现题目的问题。怎么设置 Docker jenkins 容器下的 maven http 代理,让 mvn 能下载包。
一、进入 jenkins 容器并查看 Maven 的安装信息
# 进入容器
docker exec -it jenkins bash
# 查看 Maven 安装配置
cat /var/jenkins_home/hudson.tasks.Maven.xml
<?xml version='1.1' encoding='UTF-8'?>
<hudson.tasks.Maven_-DescriptorImpl>
<installations>
<hudson.tasks.Maven_-MavenInstallation>
<name>maven3.5.2</name>
<properties>
<hudson.tools.InstallSourceProperty>
<installers>
<hudson.tasks.Maven_-MavenInstaller>
<id>3.5.2</id>
</hudson.tasks.Maven_-MavenInstaller>
</installers>
</hudson.tools.InstallSourceProperty>
</properties>
</hudson.tasks.Maven_-MavenInstallation>
</installations>
</hudson.tasks.Maven_-DescriptorImpl>
可以看到我们这里用的是 3.5.2 版本
那么的 Maven 所在的目录在
/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.5.2
二、找到 setting.xml 并修改
# 修改 setting 文件,如果有挂载,那直接在宿主机上修改即可,免得进来容器里面,还要安装 vim
vim /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.5.2/conf/settings.xml
在 xml 中的 settings 标签下增加以下内容
<proxies>
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<host> 代理服务器 IP</host>
<port> 代理服务器端口 </port>
<!--
<username></username>
<password></password>
-->
</proxy>
</proxies>
三、重启 Jenkins 容器
docker restart jenkins
#重启完,打开 jenkins,mvn 命令能下载包了