rpm安装jenkins
添加Jenkins的源(repository)
sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.reposudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum安装或者rpm安装
yum安装
sudo yum install jenkins
安装目录
/usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里
rpm安装
安装地址如下:
https://pkg.jenkins.io/redhat-stable/或者 https://prodjenkinsreleases.blob.core.windows.net/redhat/jenkins-2.242-1.1.noarch.rpm
安装jenkins
[root@etts-1 home]# rpm -ivh jenkins-2.242-1.1.noarch.rpm warning: jenkins-2.242-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEYPreparing... ################################# [100%]Updating / installing... 1:jenkins-2.242-1.1 ################################# [100%][root@etts-1 home]#
修改配置
修改端口
vim /etc/sysconfig/jenkins
修改vim /etc/init.d/jenkins 中的java地址,否则启动报下面错误
[root@etts-1 home]# systemctl status jenkins● jenkins.service - LSB: Jenkins Automation Server Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Sun 2020-06-28 02:25:04 EDT; 10s ago Docs: man:systemd-sysv-generator(8) Process: 23072 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=1/FAILURE)Jun 28 02:25:04 etts-1 systemd[1]: Starting LSB: Jenkins Automation Server...Jun 28 02:25:04 etts-1 runuser[23077]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)Jun 28 02:25:04 etts-1 jenkins[23072]: Starting Jenkins bash: /usr/bin/java: No such file or directoryJun 28 02:25:04 etts-1 runuser[23077]: pam_unix(runuser:session): session closed for user jenkinsJun 28 02:25:04 etts-1 jenkins[23072]: [FAILED]Jun 28 02:25:04 etts-1 systemd[1]: jenkins.service: control process exited, code=exited status=1Jun 28 02:25:04 etts-1 systemd[1]: Failed to start LSB: Jenkins Automation Server.Jun 28 02:25:04 etts-1 systemd[1]: Unit jenkins.service entered failed state.Jun 28 02:25:04 etts-1 systemd[1]: jenkins.service failed.
加入jdk地址
重新启动
[root@etts-1 init.d]# systemctl daemon-reload[root@etts-1 init.d]# [root@etts-1 init.d]# systemctl restart jenkins
登录配置系统
更新插件
选择其中的镜像
https://jenkins-zh.cn/tutorial/management/plugin/update-center/
下载证书
https://github.com/jenkins-zh/mirror-adapter/blob/master/rootCA/mirror-adapter.crt
docker 安装
mkdir -p /home/jenkins-data/ chown -R 1000:1000 jenkins-data/ 这里不授权,会出现下面的错误
[root@etts-1 home]# docker logs e27b8bc61373
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
docker run -d --restart=always --privileged \-v /etc/localtime:/etc/localtime \-v /home/jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v $(which docker):/usr/bin/docker \-v /home/environment/maven3:/usr/local/maven \-v /home/environment/jdk1.8.0_212:/usr/java/jdk1.8.0_221-amd64 \-v /home/environment/node:/usr/local/node \-p 6080:8080 \-p 50000:50000 \-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \ --name jenkins jenkinszh/jenkins-zh:latest
这一端标识jenkins docker 可以执行宿主机docker命令
-v /var/run/docker.sock:/var/run/docker.sock \-v $(which docker):/usr/bin/docker \
这一段标识jdk、mvn 和jenkins里面的挂载上
v /home/environment/maven3:/usr/local/maven \-v /home/environment/jdk1.8.0_212:/usr/java/jdk1.8.0_221-amd64 \
进入jenkins后配置为
红圈都是固定死的路径
https://updates.jenkins-zh.cn/update-center.json
选择插件来安装
安装插件进入jenkins主页面后,
public over ssh, subversion
Maven Integration
配置maven
创建节点 1maven添加docker插件无法引入,运行时报错 No plugin found for prefix 'docker'
aven 安装不上docker插件,运行 提示:docker:bulid时No plugin found for prefix 'docker'
原因是maven不能识别 docker-maven-plugin 需要再setting.xml 的pluginGroups标签处中加上
com.spotify
<pluginGroups> <pluginGroup>com.spotifypluginGroup> pluginGroups>
国庆节快乐
编译报错
org.apache.maven.plugin.MojoExecutionException: Could not build image
[INFO] [INFO] I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied[INFO] Retrying request to {}->unix://localhost:80[INFO] I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied[INFO] Retrying request to {}->unix://localhost:80[INFO] I/O exception (java.io.IOException) caught when processing request to {}->unix://localhost:80: Permission denied[INFO] Retrying request to {}->unix://localhost:80[WARNING] An attempt failed, will retry 1 more timesorg.apache.maven.plugin.MojoExecutionException: Could not build image at com.spotify.plugin.dockerfile.BuildMojo.buildImage (BuildMojo.java:247) at com.spotify.plugin.dockerfile.BuildMojo.execute (BuildMojo.java:135) at com.spotify.plugin.dockerfile.AbstractDockerMojo.tryExecute (AbstractDockerMojo.java:265) at com.spotify.plugin.dockerfile.AbstractDockerMojo.execute (AbstractDockerMojo.java:254) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81
[root@aisino etts-all]# useradd -m jenkins[root@aisino etts-all]# usermod -a -G docker jenkin[root@aisino etts-all]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 -G jenkins
-G jenkins 解决的是
unix://localhost:80: Permission denied 问题解决
国庆节快乐
springboot mvn 代码
<plugin> <groupId>com.spotifygroupId> <artifactId>dockerfile-maven-pluginartifactId> <version>1.4.13version> <executions> <execution> <id>defaultid> <goals> <goal>buildgoal> <goal>pushgoal> goals> execution> executions> <configuration> <repository>${docker.image.prefix}/${project.artifactId}repository> <buildArgs> <JAR_FILE>${project.build.finalName}.jarJAR_FILE> buildArgs> configuration> plugin>
效果是每次代码更新,都自动换成最新的代码环境
clean -ff -q package -Dmaven.test.skip
#!/bin/shecho "停掉服务"docker stop credentials bureau declarationecho "删除退出的容器"docker rm `docker ps -a | grep Exited | awk '{print $1}'`echo "删除无用的none 镜像"docker rmi -f `docker images | grep '' | awk '{print $3}'`docker run -p 8878:8878 --name "credentials" -d etts/etts-credentials-controllerdocker run -p 8066:8066 --name "bureau" -d etts/etts-tax-bureau-webdocker run -p 8069:8069 --name "declaration" -d etts/etts-declaration-web
NodeJS +jenkins
下载nodejs插件
上官网下载nodejs
http://nodejs.cn/download/
centos下载,并配置环境
#wget https://cdn.npm.taobao.org/dist/node/v14.12.0/node-v14.12.0-linux-x64.tar.xz#tar -xvf node-v14.12.0-linux-x64.tar.xz#mv node-v14.12.0-linux-x64 node # vime /etc/profile
export JAVA_HOME=/home/environment/jdk1.8.0_212export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport NODE_HOME=/home/environment/nodeexport MAVEN_HOME=/home/environment/maven3/export PATH=$PATH:$MAVEN_HOME/bin:$NODE_HOME/bin
如果按照前面的录入的就不用删了(删除原来的docker jenkins容器,重新挂载目录)
删掉docker 容器,重新再挂载不会影响数据
docker run -d --restart=always --privileged \-v /etc/localtime:/etc/localtime \-v /home/jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v $(which docker):/usr/bin/docker \-v /home/environment/maven3:/usr/local/maven \-v /home/environment/jdk1.8.0_212:/usr/java/jdk1.8.0_221-amd64 \-v /home/environment/node:/usr/local/node \-p 6080:8080 \-p 50000:50000 \-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \ --name jenkins jenkinszh/jenkins-zh:latest
创建vue项目
npm install --registry=https://registry.npm.taobao.orgnpm run build:prod