前提。服务器安装好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
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和其他插件也是如此。注意网络联通。