公司为了省钱,除了一台服务器能够上网之外,其余的都是内网服务器,我把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文件,如果有挂载,那直接在宿主机上修改即可,免得进来容器里面,还要安装vimvim /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命令能下载包了