Docker构建Jenkins镜像时jenkins-plugin-manager参数错误求助
解决Jenkins镜像构建的CASC与插件管理器问题
1. 直接修复当前参数报错
出现No argument is allowed: ???-plugin-file的核心原因是命令中使用了中文长破折号(——)替代了英文双短破折号(--),Jenkins插件管理器无法识别非英文符号的参数前缀。
- 检查所有命令参数,将所有中文长破折号替换为英文双短破折号,比如把错误参数改为
--plugin-file、--plugin-download-directory等。 - 示例正确命令:
java -jar jenkins-plugin-manager-2.12.9.jar --plugin-file /tmp/plugins.txt --plugin-download-directory /var/jenkins_home/plugins
2. 基于CentOS 7构建带CASC的Jenkins镜像完整流程
所需文件准备
Dockerfile:镜像构建脚本jenkins.yaml:CASC配置文件(根据自身需求编写)plugins.txt:插件清单,每行格式为插件名:版本号,例如configuration-as-code:1646.vd57e2683a_f25
Dockerfile示例
FROM centos:7 # 安装依赖(Jenkins 2.300+推荐使用OpenJDK 11) RUN yum install -y java-11-openjdk-devel wget && \ yum clean all && \ rm -rf /var/cache/yum # 修复CentOS 7停止维护后的yum源问题(可选) RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \ sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* # 设置Jenkins相关环境变量 ENV JENKINS_HOME /var/jenkins_home ENV JENKINS_WAR_URL https://get.jenkins.io/war-stable/2.462.3/jenkins.war ENV PLUGIN_MANAGER_URL https://github.com/jenkinsci/plugin-installation-manager-tool/releases/download/2.12.9/jenkins-plugin-manager-2.12.9.jar # 创建Jenkins用户和目录 RUN useradd -m jenkins && \ mkdir -p $JENKINS_HOME/plugins && \ chown -R jenkins:jenkins $JENKINS_HOME # 下载Jenkins WAR包和插件管理器 RUN wget -O /usr/share/jenkins/jenkins.war $JENKINS_WAR_URL && \ wget -O /usr/share/jenkins/jenkins-plugin-manager.jar $PLUGIN_MANAGER_URL && \ chown jenkins:jenkins /usr/share/jenkins/jenkins.war /usr/share/jenkins/jenkins-plugin-manager.jar # 复制插件清单和CASC配置文件 COPY plugins.txt /tmp/plugins.txt COPY jenkins.yaml $JENKINS_HOME/jenkins.yaml # 安装插件(确保所有参数使用英文符号) RUN su - jenkins -c "java -jar /usr/share/jenkins/jenkins-plugin-manager.jar --plugin-file /tmp/plugins.txt --plugin-download-directory $JENKINS_HOME/plugins" # 配置CASC启动参数 ENV JENKINS_OPTS "-Dcasc.jenkins.config=$JENKINS_HOME/jenkins.yaml" # 切换到Jenkins用户,暴露端口 USER jenkins EXPOSE 8080 # 启动Jenkins CMD ["java", "-jar", "/usr/share/jenkins/jenkins.war"]
构建与运行命令
# 构建镜像 docker build -t centos7-jenkins-casc . # 运行容器 docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home centos7-jenkins-casc
3. 额外注意事项
- 确保
jenkins.yaml路径在启动时可被Jenkins访问,环境变量JENKINS_OPTS必须正确指向配置文件路径。 - 插件清单
plugins.txt中的插件版本需与所选Jenkins版本兼容,若有原可用镜像的备份,建议从中导出插件清单复用。
内容的提问来源于stack exchange,提问作者New2Python
相关产品推荐
相关产品推荐

