目录
1、Jenkins 安装
2、Maven 打包镜像部署
3、Jenkins jar 包 Docker 方式打包部署
4、SpringBoot jar 包运行
4、Nodejs 打包 部署
#拉取镜像
docker pull jenkins/jenkins:lts
#运行镜像 端口映射 文件挂载
docker run -di --name jenkins -p 9126:8080 -v /home/jenkins_home/:/var/jenkins_home jenkins/jenkins:lts
#挂载的文件夹赋值权限
chown -R 1000 /home/jenkins_home/
#查看日志中的密钥
docker logs e2a0a0cd44b3
37040ffa935b4507b347c78d8eccc5c9
#访问Jenkins
http://127.0.0.1:9126
#PS:Jenkins拥有7W多个插件
#选择安装安装推荐插件
#失败就重试
#设置账密 账号用admin即可
#登录
配置SSH 系统设置-->插件管理-->可选插件 输入"SSH" 搜索后 安装 (名称一字不差) (截图中我已安装)
配置JDK 系统设置-->全局工具配置-->可选插件 注:需要oracle的账号密码
2696671285@qq.com
Oracle123
使用请 哔哩哔哩搜索:程序员大张
配置MAVEN 与 镜像 这里用的是3.6.2
.Jiangdi5
#进去 Jentkins maven 目录
cd /home/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.2/conf
#修改
vim settings.xml
配置SSH连接 linux 服务器 由于连接配置页面无法创建 凭证 先手动维护
凭证配置完成后再配置SSH连接 上面已经安装SSH故不再安装 配置完成后点击 check conection 测试连接
开始创建流水线任务
构建触发器 定时执行 如果 git 有提交则会自动部署
构建中 点击 增加构建步骤 选择 "调用顶层MAVEN目标"
这里 配合 方式一 使用 所以 加了 "docker:build"
方式一: idea maven docker 打包镜像部署
ps:不推荐 但可以学习学习
点击 增加构建步骤 选择 "Execute shell script on remote host using ssh" 如图所示 命令中输入
因为 maven 打包上传 会替换 原镜像 所以会有很多 none 镜像 命令最后一行负责删除
app_name='shouban'
docker stop ${app_name}
echo 'stop'
docker rm ${app_name}
echo 'rm'
docker run -di --name ${app_name} -p 8888:8080 ${app_name}
echo 'start'
docker images | grep none | awk '{print $3}' | xargs docker rmi
echo 'none rmi'
需要开启 docker 2375 远程端口
#配置 docker 2375端口 添加 下图标红 配置
vim /lib/systemd/system/docker.service
#配置 完成后 重启 jenkins 命令
docker restart jenkins
代码中 pom-new.xml 中添加
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--指定生成的镜像名,如果不指定tag,默认会使用latest-->
<imageName>shouban</imageName>
<!-- 指定 Dockerfile 路径 :项目根路径下-->
<dockerDirectory>${project.basedir}/docker</dockerDirectory>
<!--指定远程 docker api地址-->
<dockerHost>http://192.168.81.129:2375</dockerHost>
<!-- copy资源 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--docker build dockerfile时:设置镜像创建时的变量 -->
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
根目录下添加 Dockerfile
FROM java:8
COPY *.jar /shouban-0.0.1-SNAPSHOT.jar
CMD ["--server.port=8080","--spring.profiles.active=dev","--spring.jpa.properties.hibernate.cache.redis.host=47.100.110.238"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/shouban-0.0.1-SNAPSHOT.jar"]
最后运行流水计划即可
方式二:maven 打 jar 包 上传到服务器 再 打包docker镜像 运行
ps:我又来了
备注: tomcat 部署插件:Deploy to container
安装 Publish over SSH 插件
配置 SSH servers 这里注意点高级然后配置密码 可不填写的不用填 主要是 IP 账号 密码 路径根目录即可
增加构建步骤 "Send files or execcute commands over SSH" 选择配置的服务
释义:
复制 target 下的 项目 jar 包
复制 target 不要前缀
文件存放目录:/opt/service/jenkins
命令:创建写入Dockerfile 执行 docker 命令
echo "
FROM java:8
COPY *.jar /shouban.jar
CMD [\"--server.port=8080\",\"--spring.profiles.active=dev\",\"--spring.jpa.properties.hibernate.cache.redis.host=47.100.110.238\",\"--Duser.timezone=GMT+08\"]
EXPOSE 8080
ENTRYPOINT [\"java\",\"-jar\",\"/shouban.jar\"]
" > /opt/service/jenkins/Dockerfile
docker stop shouban
docker rm shouban
docker rmi shouban
cd /opt/service/jenkins
docker build -f Dockerfile -t shouban .
docker run --name shouban -d -p 0.0.0.0:8080:8080 shouban
方式三: SpringBoot jar 包运行
PS: nohup 命令 Jenkins 会超时 但部署成功
注:这里直接填写java路径
命令释义:
复制 target 下的 项目 jar 包
复制 target 不要前缀
文件存放目录:/opt/service/taskService
命令:关闭 jar 包服务后 启动 jar 包项目
kill $(ps -ef | grep taskService.jar | grep -v grep | awk '{ print $2 }')
cd /opt/service/taskSerivce
nohup /usr/local/jdk/jdk1.8.0_291/bin/java -jar taskService.jar --spring.profiles.active=dev --Duser.timezone=GMT+08 -Xms512m -Xmx512m -Xmn512m -Xss256k -XX:MetaspaceSize=68m -XX:MaxMetaspaceSize=128m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/service/taskService/dumps/heapdump.hprof &
方式四:nodejs 打包部署
安装 "NodeJS Plugin" 插件
"系统设置" --> "全局工具配置" 中找到 "NodeJS" 点击 "NodeJS 安装"
"构建环境" 中 点击 "Provide Node & npm bin/ folder to PATH" 选择刚刚配置的 "nodejs" 即可
"构建" 中 点击 "增加构建步骤" 选择 "执行 shell"
命令释义:
查看版本 安装 配置 npm 所需环境 执行命令打包 将打包后的文件 压缩成压缩包
echo $PATH
node -v
npm -v
npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
npm install
npm run build
cd dist
rm -rf vue-mall.tar.gz
tar -zcvf vue-mall.tar.gz *
cd ../
再点击 "Execute shell script on remote host using ssh"
命令释义:
复制 dist 下的 所有文件
复制 时 不要前缀 dist
文件存放目录:/opt/service/test
命令:解压 后 删除压缩包
cd /opt/service/admin
tar zxvf vue-mall.tar.gz -C ./
rm -rf vue-mall.tar.gz