Jenkins+Docker详细部署

前提。服务器安装好Docker,

创建自定义docker网络模式

docker network create mynet

一. 安装MYSQL

在服务器创建好容器卷(就是容器和宿主机共享的文件夹)

mkdir mysql/mysql01/data

mkdir  mysql/mysql01/conf

mkdir  mysql/mysql01/logs

创建镜像容器。

docker run -d -p 3306:3306 -v /root/mysql/mysql01/conf:/etc/mysql/conf.d -v /root/mysql/mysql01/data:/var/lib/mysql -v /root/mysql/mysql01/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=Xl5680429 --network mynet --name mysql01 mysql:8.0;

二.安装Jenkins

创建容器卷

mkdir jenkins

给容器1000的权限

chown -R 1000:1000 jenkins

chown 777 /var/run/docker.sock

docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true --network testnet -v /root/jenkins:/var/jenkins_home -v /usr/bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -u 0 jenkins/jenkins

打开jenkins页面。

输入密码。密码获取方式:

docker exec -it jenkins bash

cat /var/jenkins_home/secrets/initialAdminPassword

粘贴密码--->推荐安装插件----->安装完成输入初始化账户密码----->默认地址----->进入成功。

三. jenkins构建SpringBoot项目

1.安装maven插件。

2.创建maven项目。

git

git

Build


Build

执行Shell的内容:

echo =====开始执行Shell=====

#删除docker项目镜像

docker rmi -f shawlen/coolv:1.0

#删除宿主机日志文件

rm -f /root/app/logs/coolv/*

#构建docker项目镜像(Dockerfile在根目录下)JAR_FILE要构建的jar包

docker build --build-arg JAR_FILE=litemall-all/target/litemall-all-0.1.0-exec.jar -t shawlen/coolv:1.0 .

docker images

docker ps -a

#docker stop coolv-api

#删除旧容器

docker rm -f coolv-api

#运行新容器 --link mysql01链接数据库,或者--network mynet

docker run -d --name coolv-api -p 8080:8080 --network mynet -v /root/app/logs/coolv:/logs shawlen/coolv:1.0

docker ps -a

应用,保存。

结束。

四.SpringBoot项目

项目pom.xml(第三步build的pom.xml)中添加

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <repository>${project.artifactId}</repository> <buildArgs> <JAR_FILE>litemall-all/target/*-exec.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins></build>

项目根目录添加Dockerfile

FROM openjdk:8-jdk-alpine

ARG JAR_FILE

RUN mkdir /worker

COPY ${JAR_FILE} /worker/coolv.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","/worker/coolv.jar"]

项目设置数据库容器ip地址。如果有redis和其他插件也是如此。注意网络联通。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容