1.项目部署要依托于docker环境(首先要在linux 安装 docke环境安装,最好是安装 新一点的版本 老版本有好多不是很兼容,在此之前需要安装好jdk的环境 1.8)
2.安装docker 的管理工具 portainer (portainer 能通过页面化的形式去管理docker 镜像,镜像首 次启动需要自己在后台执行启动命令,启动后portainer 就可以对镜像进行 启动关闭 下载操作)
portainer 的安装方式 如果你的Linux 连着网 可以直接通过命令下载安装
docker search portainer (查找 portainer版本)
docker pull portainer/portainer 就会把镜像下载到本地
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer docker.io/portainer/portainer (启动命令 -v把docker的数据持久化)
如果没有只能是外部导入 外部下载完镜像之后需要 把文件加载到 docker imager 中 (docekr 基础命令) 加载完之后在启动 portainer
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
查看docker概要信息docker info
查看docker帮助文档docker ‐‐help
删除 镜像 docker rmi 名称
删除 启动的镜像服务 docker rm 名称
加载镜像了:docker load -i /home/images827/image.tar
3.Docker下安装Jenkins并配置Maven jdk 实现项目打包
(黄色字体 代表了命令)
- 部署Jenkins前需要在linux安装好docker 环境
- 服务器上需要下载好 Linux 的 1.8 jdk 和 maven
- Docker search jenkins -- docker命令 查找 jenkins 镜像包
- 拉去镜像docker pull jenkins/jenkins
- #创建文件夹
- mkdir -p /home/jenkins_home
- #权限
- chmod 777 /home/jenkins_home
- 启动 镜像命令: docker run -d -uroot -p 9095:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins (9095是映射出来的我们访问的端口 50000 是这个用到的端口)
- docker run -d -uroot -p 9095:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home:/var/jenkins_home -v /usr/java:/usr/local/jdk1.8 -v /opt/software/apache-maven-3.5.4:/usr/local/apache-maven-3.5.4 -v /usr/bin/docker:/usr/bin/docker -v /etc/localtime:/etc/localtime jenkins/jenkins
- 命令 描述
-d 后台运行容器,并返回容器ID
-uroot 使用 root 身份进入容器,推荐加上,避免容器内执行某些命令时报权限错误
-p 9095:8080 将容器内8080端口映射至宿主机9095端口,这个是访问jenkins的端口
-p 50000:50000 将容器内50000端口映射至宿主机50000端口
--name jenkins 设置容器名称为jenkins
-v /home/jenkins_home:/var/jenkins_home :/var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录
-v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置
jenkins/jenkins 镜像的名称,这里也可以写镜像ID
- #日志查看
启动后 docker logs jenkins 查看 默认密码
- 进入到 Jenkins 的docker服务里 docker exec -it -u root jenkins /bin/bash
- 在jenkins 镜像服务里 创建 一个放jdk 和maven 的路径 (这个可以外部引用,我这个没有成功需要把这些放到jenkins 服务里面)
- 把 liux 上的 jdk 和maven 拷贝到 jenkins 镜像 服务里 docker cp /usr/java/jdk1.8.0_211-amd64 c800a33e799d:/opt/jdk1.8 (/usr/java/jdk1.8.0_211-amd64 linux jdk环境位置)(684ab5480c99:/opt/jdk1.8 docker镜像服务id 后面跟要放的位置 ) 外部引入不用安装
- (把之前看到的密码复制到这上面 ,点击新手安装)
- (这三个地方需要配置)(在可选插件里 选择 并且安装)打成 docker 镜像包需要 配置 ssh 插
- 构建项目
- 配置好并且保存 就可以执行了 就可以打包了
- 打包命令
# 服务名称
SERVER_NAME=adage
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=demo-0.0.1-SNAPSHOT
# jenkins下的目录
JENKINS_HOME=/home/jenkins_home//workspace/adage
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "结束进程完成"
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改文件权限
chmod 755 $JAR_NAME.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop springboot
echo "删除容器"
# 删除容器
docker rm springboot
echo "删除镜像"
# 删除镜像
docker rmi springboot
echo "打包镜像"
# 打包镜像
docker build -t springboot .
echo "运行镜像"
# 运行镜像 docker run -d -p 8070:8070 --name springboot springboot
-
Dockerfile
和pom文件同级 用于打dockers包 这个是 打jar 包启动得
FROM allenwang123/jre1.8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
- 创建 Dockerfile 文件 这个是打war 包 放tomcat 启动的
-
FROM tomcat:9.0-jdk8-openjdk
ADD ./ROOT.war /usr/local/tomcat/webapps/ROOT.war
这个是在本服务器
这个是可以连接其他得服务器 也可以是本地的 ,在创建打包项目得时候这两个操作不一样
#!/bin/bash
# 服务名称
SERVER_NAME=adage
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=demo-0.0.1-SNAPSHOT
# jenkins下的目录
JENKINS_HOME=/home/jenkins_home//workspace/adage
# 等待三秒
echo sleep 3s
sleep 1
echo sleep 2s
sleep 1
echo sleep 1s
sleep 1
echo "结束进程完成"
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改文件权限
chmod 755 $JAR_NAME.jar
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop springboot
echo "删除容器"
# 删除容器
docker rm springboot
echo "删除镜像"
# 删除镜像
docker rmi springboot
echo "打包镜像"
# 打包镜像
docker build -t springboot .
echo "运行镜像"
# 运行镜像
docker run -d -p 8070:8070 --name springboot springboot
4. Dockerfile
和pom文件同级 用于打dockers包 这个是 打jar 包启动得
FROM allenwang123/jre1.8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
- 创建 Dockerfile 文件 这个是打war 包 放tomcat 启动的
FROM tomcat:9.0-jdk8-openjdk
ADD ./ROOT.war /usr/local/tomcat/webapps/ROOT.war