Docker整合springboot進(jìn)行測(cè)試環(huán)境的快速迭代

最近項(xiàng)目較多欣福,接口的修改與測(cè)試每次比較麻煩,基于jenkins還是麻煩了一些语泽,又要寫腳本還得點(diǎn)那么多按鈕贸典,所以考慮直接在idea里面進(jìn)行docker部署,這樣每次修改了代碼后踱卵,通過(guò)maven本地化構(gòu)建完就可以直接推送到docker里面去了(網(wǎng)速不好可能也是硬傷如果接口部署在外網(wǎng)的話廊驼。。惋砂。不過(guò)能跟我們寫字樓這個(gè)網(wǎng)速的情況還是不多的所以可以忽略這種情況)

一妒挎、Docker的幾個(gè)基本概念,

image:鏡像文件西饵,就像我們的CD碟片一樣酝掩,這些碟有很多標(biāo)準(zhǔn)的公用版本,這些版本就像maven倉(cāng)庫(kù)一樣存在共有的鏡像倉(cāng)庫(kù)中罗标,(這里面涉及到安裝時(shí)候的一點(diǎn)修改就是也要改成國(guó)內(nèi)的鏡像不然下載死啦死啦地)庸队。繼續(xù)剛才的例子,我們可以買一張光盤這個(gè)過(guò)程等于是從公用鏡像上面下載了一個(gè)帶有tomcat的docker文件闯割,但是我們通過(guò)電腦的CD驅(qū)動(dòng)又往光盤上刻制了一些內(nèi)容彻消,此時(shí)就生成了一個(gè)新的鏡像,我們可以將鏡像放到倉(cāng)庫(kù)里面這個(gè)倉(cāng)庫(kù)是我們自己部署在服務(wù)端的server里面保存的宙拉。
docker-server:docker的server端宾尚,他的主要職責(zé)是管理我們的鏡像文件,還有docker的另外一個(gè)概念container谢澈,也就是容器煌贴,容器是docker部署應(yīng)用的真正載體。
container:容器是docker真正跑代碼的載體锥忿,我們的應(yīng)用是執(zhí)行在容器里面的牛郑。

二、安裝docker服務(wù)端

此處引用其他人的內(nèi)容敬鬓,做個(gè)記錄
https://www.cnblogs.com/shihaibin821/p/12731194.html
著重強(qiáng)調(diào)一點(diǎn)一定要修改鏡像倉(cāng)庫(kù)地址為國(guó)內(nèi)鏡像淹朋。
為docker添加證書保障安全性
https://blog.csdn.net/oceanyang520/article/details/101563309

三笙各、idea里面如何將代碼部署到遠(yuǎn)程的docker

1、首先要在idea中安裝docker插件
file--》settings--》plugins--》搜索docker础芍,安裝即可


image.png

2杈抢、安裝好插件后為docker配置遠(yuǎn)程服務(wù)地址
file--》settings--》builds,excution仑性,deployment--》docker
點(diǎn)擊加號(hào)添加連接


image.png

下方出現(xiàn)connection successful即表示連接遠(yuǎn)程server端成功惶楼。
3、添加Dockerfile文件在項(xiàng)目中文件名Dockerfile诊杆,文件內(nèi)容如下
FROM java:8
VOLUME /tmp
ADD calculation.jar app.jar
EXPOSE 8999
ENTRYPOINT [ "java", "-jar", "/app.jar" ]

4歼捐、修改pom里面maven的build模塊,可以將之前的構(gòu)建方式先注釋添加內(nèi)容如下

<build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
            <!-- 跳過(guò)單元測(cè)試 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
            <!--使用docker-maven-plugin插件-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <!--將插件綁定在某個(gè)phase執(zhí)行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--用戶只需執(zhí)行mvn package 刽辙,就會(huì)自動(dòng)執(zhí)行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--指定生成的鏡像名-->
                    <imageName>insurance/${project.artifactId}</imageName>
                    <!--指定標(biāo)簽-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!-- 指定 Dockerfile 路徑-->
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <!--指定遠(yuǎn)程 docker api地址-->
                    <dockerHost>http://docker地址:2375</dockerHost>
                    <!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路徑  此處配置的 即對(duì)應(yīng) target 目錄-->
                            <directory>${project.build.directory}</directory>
                            <!-- 需要包含的 jar包 窥岩,這里對(duì)應(yīng)的是 Dockerfile中添加的文件名 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

5、配置好后點(diǎn)擊maven構(gòu)建


image.png

6宰缤、點(diǎn)擊idea底部的service打開docker面板


image.png

找到剛剛打包并push的image鏡像點(diǎn)擊右鍵選擇create container颂翼,完成配置,配置截圖如下
image.png

主要做好端口的映射慨灭,Binds ports 前面是宿主機(jī)對(duì)外暴露的端口號(hào)朦乏,后面是docker container的端口號(hào),這兩個(gè)端口是負(fù)責(zé)通信氧骤,將我們部署在docker container里面的應(yīng)用與外界能夠進(jìn)行通信呻疹。
7、 啟動(dòng)


image.png

8筹陵、日志查看
點(diǎn)擊控制臺(tái)的log查看應(yīng)用啟動(dòng)日志


image.png

9刽锤、最后打開瀏覽器我們?cè)囍L問(wèn)宿主機(jī)的8999端口進(jìn)行檢查
image.png

每次更新代碼構(gòu)建完成后,點(diǎn)擊鏡像文件選擇create container--》docker image 就可以將原來(lái)的container里面的應(yīng)用刷新朦佩,肥腸滴方便并思。
image.png

ok成功了,將此作為一個(gè)筆記语稠,后面計(jì)劃在團(tuán)隊(duì)中推廣宋彼,結(jié)合swagger進(jìn)行敏捷開發(fā),感覺(jué)美美噠仙畦。输涕。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慨畸,一起剝皮案震驚了整個(gè)濱河市莱坎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寸士,老刑警劉巖型奥,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞳收,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡厢汹,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門谐宙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)烫葬,“玉大人,你說(shuō)我怎么就攤上這事凡蜻〈钭郏” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵划栓,是天一觀的道長(zhǎng)兑巾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)忠荞,這世上最難降的妖魔是什么蒋歌? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮委煤,結(jié)果婚禮上堂油,老公的妹妹穿的比我還像新娘。我一直安慰自己碧绞,他們只是感情好府框,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讥邻,像睡著了一般迫靖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上兴使,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天系宜,我揣著相機(jī)與錄音,去河邊找鬼鲫惶。 笑死蜈首,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的欠母。 我是一名探鬼主播欢策,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赏淌!你這毒婦竟也來(lái)了踩寇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤六水,失蹤者是張志新(化名)和其女友劉穎俺孙,沒(méi)想到半個(gè)月后辣卒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡睛榄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年荣茫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片场靴。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啡莉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旨剥,到底是詐尸還是另有隱情咧欣,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布轨帜,位于F島的核電站魄咕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蚌父。R本人自食惡果不足惜哮兰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梢什。 院中可真熱鬧奠蹬,春花似錦、人聲如沸嗡午。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荔睹。三九已至狸演,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間僻他,已是汗流浹背宵距。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吨拗,地道東北人满哪。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像劝篷,于是被迫代替她去往敵國(guó)和親哨鸭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容