目錄
- 一、安裝Docker
- 二、創(chuàng)建自定義網(wǎng)絡(luò)地址
- 三、docker創(chuàng)建容器
- 四、自定義鏡像
- 五、配置nginx反向代理
- 六、項(xiàng)目上傳到Git倉庫
- 七、使用Jenkins發(fā)布、測試項(xiàng)目
一、安裝Docker
PS:安裝前提是已經(jīng)安裝了CentOS VM
1、設(shè)置下載Docker的鏡像源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安裝Docker
3.啟動(dòng)Docker服務(wù)
4、配置鏡像加速
4.1、修改docker服務(wù)配置:vim /usr/lib/systemd/system/docker.service
進(jìn)入,找到參數(shù):ExecStart=/usr/bin/dockerd
4.2、在該行參數(shù)后面追加:--registry-mirror=https://xfaawkne.mirror.aliyuncs.com
4.3、最終該行參數(shù)為:
ExecStart=/usr/bin/dockerd --registry-mirror=https://xfaawkne.mirror.aliyuncs.com -H fd:// --containerd=/run/containerd/containerd.sock
4.4、重啟docker
systemctl daemon-reload
systemctl restart docker
二、創(chuàng)建自定義網(wǎng)絡(luò)地址
//創(chuàng)建cbnet網(wǎng)絡(luò)
docker network create --subnet=172.18.0.0/16 cbnet
//刪除docker網(wǎng)絡(luò)命令
docker network rm 網(wǎng)絡(luò)IP名稱
//查看docker 的網(wǎng)絡(luò)定義
docker network ls
三、docker創(chuàng)建容器
1、創(chuàng)建mysql、redis、nginx容器
MySQL:
docker run -d --name mysql --network cbnet --ip 172.18.0.100 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
Redis:
docker run -itd --name redis -p 6379:6379 --network cbnet --ip 172.18.0.102 redis
Nginx:
docker run --name nginx -p 80:80 --network cbnet --ip 172.18.0.105 nginx //如果沒有,會(huì)自動(dòng)下載
四、自定義鏡像
查看全部本地的鏡像docker images
刪除本地鏡像 docker rmi
鏡像的標(biāo)識(shí)
1、在項(xiàng)目中的pom.xml文件下的plugins下面追加docker-maven插件
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerHost>http://192.168.161.129:2375</dockerHost>
<imageName>creatorblue/spring-security</imageName>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<forceTags>false</forceTags>
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2、在資源目錄新建Dockerfile文件,填寫以下內(nèi)容
FROM frolvlad/alpine-oraclejdk8:slim
USER root
VOLUME /tmp
ADD springboot-security-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS="-server -Xms256M -Xmx512M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=128M -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
3、打包項(xiàng)目,右擊項(xiàng)目選擇Run As下的 Maven build 輸入以下代碼,點(diǎn)擊run
docker:build -P prod或cleanpackge docker:build -P prod
控制臺(tái)出現(xiàn)如下圖及成功
4、在虛擬機(jī)上修改docker.service配置,開放2375端口
1、首先進(jìn)入docker.service文件
vim /usr/lib/systemd/system/docker.service
2、其次開放2375端口
-H tcp://0.0.0.0:2375
3、最后重啟Docker
systemctl daemon-reload
systemctl restart docker
5、在虛擬機(jī)查看自定義鏡像是否成功:docker images
6、配置自定義容器IP地址
docker run -d --name spring-security -p 8088:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.110
docker run -d --name spring-security2 -p 8089:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.111
最后啟動(dòng)MySQL、Redis、Nginx、Spring-security容器
五、配置nginx反向代理
實(shí)現(xiàn)負(fù)載均衡(一個(gè)IP登錄后,第二個(gè)IP可以直接進(jìn)入,不會(huì)互擠)
1、查看nginx目錄
1、復(fù)制容器的文件:docker cp nginx:/etc/nginx/conf.d/default.conf default.conf
2、編輯文件:vi default.conf
2、在default.conf文件增加代碼
修改default.conf文件如下:
//同一個(gè)鏡像下的2個(gè)容器
upstream my{
server 172.18.0.110:8080;
server 172.18.0.111:8080;
}
location /spring{
proxy_pass http://my;
}
六、項(xiàng)目上傳到Git倉庫
1、首先創(chuàng)建一個(gè)倉庫
2、創(chuàng)建成功后,復(fù)制倉庫地址
3、選擇需要上傳的項(xiàng)目并右擊項(xiàng)目,選擇Team下的Share Project
最后點(diǎn)擊finish完成!如圖:
>
代表動(dòng)過它但是沒有提交
?
代表全新創(chuàng)建的
紅色雙箭頭
代表遠(yuǎn)程也修改,本地也修改了,就報(bào)錯(cuò)
4、提交到本地倉庫
右擊項(xiàng)目,選擇Team下的Commit
5、提交到遠(yuǎn)程倉庫,右擊項(xiàng)目,如以下圖示例
如果從本文的第一步就復(fù)制了,就不需要復(fù)制了,eclipse已經(jīng)同步了;如果一開始沒復(fù)制,就需要復(fù)制git的倉庫地址即可!
此時(shí),刷新git網(wǎng)址,如下圖就成功了
如果遇到拉取不了,上傳也上不了問題,詳見https://blog.csdn.net/ZHANGDANDAN04/article/details/115725977
文章篇尾有解決步驟
七、使用Jenkins發(fā)布、測試項(xiàng)目
進(jìn)入官網(wǎng)https://www.jenkins.io/
1、安裝Jenkins
2、按照以下界面步驟依次在虛擬機(jī)安裝
3、安裝成功后,啟動(dòng)jenkins
訪問地址虛擬機(jī)ip地址+Jenkins默認(rèn)端口8080
選擇安裝推薦的插件即可!
由于網(wǎng)絡(luò)問題,所以有些插件安裝失敗,git已安裝成功即可,可以點(diǎn)擊繼續(xù)進(jìn)行下一步
4、在虛擬機(jī)上安裝Git
5、在Jenkins中新建一個(gè)Item,來構(gòu)建項(xiàng)目,步驟如下:
點(diǎn)擊構(gòu)建成功的項(xiàng)目進(jìn)行配置,點(diǎn)擊確定
6、點(diǎn)擊Manage Jenkins
并配置全局工具進(jìn)行配置
7、虛擬機(jī)中下載jdk,并配置jdk
命令:
yum install -y javacc-maven-plugin.noarch
//搜索javac
find / -name javac
8、配置maven
8.1、首先進(jìn)入maven官網(wǎng),復(fù)制maven的壓縮包
8.2、回到home目錄,使用wget+粘貼剛剛復(fù)制的maven地址
解壓文件
8.4、文件解壓后,進(jìn)入maven并進(jìn)入cd conf中,修改settings.xml文件,里面加載阿里云服務(wù)器進(jìn)行提速
1、進(jìn)入編輯命令:vi settings.xm
2、在mirrors中新增阿里云服務(wù)器
<mirror>
<!--This sends everything else to /public -->
<id>aliyun</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<!--This is used to direct the public snapshots repo in the
profile below over to a different nexus group -->
<id>aliyun-public-snapshots</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
</mirror>
8.5、進(jìn)行配置
9、調(diào)用頂層Maven目標(biāo)
進(jìn)入到構(gòu)建項(xiàng)目的設(shè)置中
并構(gòu)建maven項(xiàng)目,打包命令clean install -P prod
,點(diǎn)擊保存即可
10、在虛擬機(jī)上找到spring-security路徑
11、完成構(gòu)建項(xiàng)目
以下界面及啟動(dòng)成功!
jenkins 運(yùn)行常遇到的錯(cuò)誤:
1、在虛擬機(jī)下載jdkyum install -y javacc-maven-plugin.noarch
2、Jenkins訪問權(quán)限不夠
解決權(quán)限的命令
vim /etc/sysconfig/jenkins
3、Execute Shell寫錯(cuò)項(xiàng)目名稱
13、測試url訪問地址
最后,當(dāng)需要給項(xiàng)目升級(jí)時(shí),首先完成代碼編寫,其次commit and push上傳到git倉庫,再在jenkins重新構(gòu)建,再次訪問新的接口即可,如以下示例步驟
補(bǔ)充:可以寫有個(gè)腳本同時(shí)啟動(dòng)多個(gè)容器
1、編寫啟動(dòng)多個(gè)容器的腳本:vi auto.sh
2、例如:啟動(dòng)三個(gè)容器
!/bin/bash
docker run -d --name spring-security -p 8087:8080 -v /mnt/uploads:/mnt/uploads --network cbnet --ip 172.18.0.10 cetorblue/spring-security
docker' run -d --name spring-security -p 8088:8080 -v/mnt/uploads : /mnt/uploads --network chnet --ip 172.18.0.10 creatorblue/spring-security
docker run_-d --name spring-security -p 8089:8080 -v /mnt/uploads : /mnt /uploads --network chnet --ip17.18.0.10 cretorblue/spring-security
最后啟動(dòng) sh auto.sh
即可!
到此這篇關(guān)于Docker使用Git實(shí)現(xiàn)Jenkins發(fā)布、測試項(xiàng)目的詳細(xì)流程的文章就介紹到這了,更多相關(guān)Docker Jenkins發(fā)布測試項(xiàng)目內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!