以Docker爲容器以SpringBoot爲基礎發佈微服務或者web已經成爲一種比較便捷的方式。本節來實現由Docker Git來快速發佈一個基於SpringBoot的web項目。java
默認已經完成了SpringBoot的hello world項目。git
一. 實現原理web
本地提交代碼 -->推送的Git遠程倉庫-->Docker run提早構建好的鏡像--> 啓動鏡像啓動後執行命令去Git倉庫拉去最新代碼-->編譯啓動web項目spring
關於SpringBoot的啓動方式:docker
SpringBoot項目的三種啓動方式:1. IDE中直接運行 2. 打成jar包 執行java -jar 3.執行基於maven的mvn spring-boot:runapache
咱們選用第三種 用maven來啓動vim
二. 工程實現centos
1.建立遠程代碼倉庫,把寫好的hello world代碼推送到遠程bash
2.準備docker鏡像環境curl
我這裏使用DockerHub公共鏡像idasound/centos7-jdk8做爲基礎鏡像,該鏡像默認環境爲Centos7.x和jdk1.8
由於咱們用到JDK Maven Git,因此須要在此基礎上繼續完善環境。
啓動並進入基礎鏡像容器
docker run -it idasound/centos7-jdk8:latest
安裝Maven和Git ,這裏我寫了個腳本 執行腳原本安裝
#建立腳本目錄 mkdir -p /data/script vim install-mvn-git.sh #賦可執行權 chmod -R 755 install-mvn-git.sh #執行 ./install-mvn-git.sh #執行完成後驗證 java -version mvn -v git --version
安裝腳本:
# @Author: peizhouyu # @Date: 2019-04-15 14:24:11 # @Last Modified by: peizhouyu # @Last Modified time: 2019-04-15 16:41:36 #!/bin/bash SOFT_PATH=/opt/soft if [ ! -d $SOFT_PATH ];then mkdir $SOFT_PATH else echo "文件夾已經存在" fi yum install -y wget #install maven3.2.3 cd $SOFT_PATH wget https://archive.apache.org/dist/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz tar -zxvf apache-maven-3.2.3-bin.tar.gz -C $SOFT_PATH mv apache-maven-3.2.3 maven-3.2.3 cd maven* MAVEN_HOME=`pwd` ln -s $MAVEN_HOME/bin/mvn /usr/bin/mvn #install git 2.8.0 cd $SOFT_PATH yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils- MakeMaker wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.8.0.tar.gz tar -zxvf git-2.8.0.tar.gz -C $SOFT_PATH cd git* ./configure make install ln -s /usr/local/bin/git /usr/bin/git
到此容器環境已經裝好了,注意在退出容器前複製一下容器的id 即在容器內執行命令的時候左邊的主機名
以下圖 cd8af6361068:
執行exit退出容器,而後以此容器爲基礎建立基礎環境鏡像。
docker commit -m "install maven git" cd8af6361068 mrpei/centos7-jdk-mvn-git-base:v1
3.建立運行鏡像
編寫dockerfile文件:
FROM mrpei/centos7-jdk-mvn-git-base:v1 MAINTAINER peizhouyu CMD rm -rf /data \ && mkdir -p /data/web \ && git clone https://peizhouyu%40vip.com:test123@gitee.com/peizhouyu/twchat.git \ && cd twchat \ && mvn spring-boot:run
構建執行鏡像:
docker build -t "mrpei/twchat:v1" .
4. 啓動容器
docker run -d -p 8820:8820 --name twchat-01 mrpei/twchat:v1
容器運行後須要拉代碼構建,稍等幾分鐘 訪問IP:8820 就能夠看到咱們的web內容了。