我司的生产环境由两个网段,一个网段(10.12.x.x)可以出外网,另一个网段(10.14.x.x)不能出外网。 jenkins是部署在10.14网段上,由于该网段不能联网,所以需要配置代理,由10.12网段代理出去。
使用的工具
配置 gost 代理
在10.12.x.x网段其中一台机器上下载gost工具,执行如下命令启动代理
代码语言:javascript复制# 下载地址
https://github.com/go-gost/gost/releases
# 解压启动
./gost-linux-amd64-2.11.4 -L test:123456@0.0.0.0:8888
配置代理
代码语言:javascript复制# 配置 docker 代理
mkdir /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://10.12.x.x:8888/"
Environment="HTTPS_PROXY=http://10.12.x.x:8888/"
systemctl daemon-reload
systemctl start docker
# 配置全局代理
如果要永久生效,请添加到/etc/profile 文件中
export http_proxy=http://test:123456@10.12.x.x:8888
export https_proxy=http://test:123456@10.12.x.x:8888
上面代理配置完后,可以使用 yum 命令,也可以使用 docker pull 镜像,但是在 jenkins 中无法下载插件,如果要在 jenkins 中下载插件,需要配置 ssh 端口映射
ssh 端口映射配置
docker-compose.yml
代码语言:javascript复制version: "3.7"
services:
jenkins:
image: jenkins:2.371-jdk11
container_name: jenkins
hostname: jenkins
restart: always
user: root
volumes:
- /data/jenkins_home:/var/jenkins_home
- /etc/localtime:/etc/localtime
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /root/.ssh:/root/.ssh
- /usr/local/node:/usr/local/node
- /usr/local/maven:/usr/local/maven
- /usr/local/jdk:/usr/local/jdk
ports:
- 8080:8080
- 50000:50000
environment:
- JAVA_OPTS="-Duser.timezone=Asia/Shanghai"
- TZ=Asia/Shanghai