将Jenkins部署在二级目录下
启动参数,增加 --prefix /path 即可,如:
docker run -d --restart always --security-opt seccomp=unconfined --name jenkins-server\
-p 8080:8080 \
-e JAVA_OPTS="-Xms256m -Xmx2048m -XshowSettings:vm -Dhudson.slaves.NodeProvisioner.initialDelay=0 -Dhudson.slaves.NodeProvisioner.MARGIN=50 -Dhudson.slaves.NodeProvisioner.MARGIN0=0.85 -Djenkins.install.runSetupWizard=false -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Shanghai" \
-e JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" \
-v ~:/root \
-v ~:/home/dnet \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins-server:2.492.1-lts-hd --prefix=/jenkins使用websocket代替50000端口
针对Jenkins部署在k8s并使用alb发布服务时,alb没有四层协议,无法发布50000端口的监听。代替方案是改为webSocket的方式进行slave与master通讯。这个方式其实并不复杂,也不需要在Jenkins中配置什么,只需要在启动slave时,增加参数-webSocket 即可
docker run --init -d --restart always --name jenkins-agent \
-e JAVA_OPTS="-XX:MaxMetaspaceSize=256m -Xms256m -Xmx2048m" \
-v ~:/root \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins-agent:3283.v92c105e0f819-jdk17 \
-url http://<jenkins-server:port> \
-webSocket \
<secret> <agent name>