傳統(tǒng)方法的缺點
網(wǎng)上有很多關(guān)于使用Docker部署SpringBoot應(yīng)用的教程,但是無一例外地使用了本地的Docker構(gòu)建鏡像,然后通過push本地鏡像的方式提交至阿里云容器服務(wù)。
類似教程如:
按照如此方法,不僅需要引入并配置使用Spring Boot Maven plugin這個插件,還需要在本地機器安裝Docker,然后執(zhí)行mvn package docker:build。
構(gòu)建好鏡像后,再push到遠程鏡像倉庫中。這樣不僅每一次更新都要重新構(gòu)建、重新push,而且極度消耗本地機器性能。
使用阿里云鏡像服務(wù)構(gòu)建
阿里云提供的鏡像服務(wù)中,可以通過源代碼直接構(gòu)建,只需指明代碼中的Dockerfile路徑即可。由于其鏡像構(gòu)建服務(wù)可以使用海外機器構(gòu)建,因此在構(gòu)建maven項目時,
不會存在麻煩的倉庫更新緩慢的問題。
具體做法如下:
-
在
SpringBoot項目根路徑下創(chuàng)建DockerFile:
編輯
Dockerfile,這里使用官方的maven鏡像作為基礎(chǔ)鏡像:
FROM maven:3.5.4-alpine
ADD . /app
WORKDIR /app/
RUN mvn clean package
EXPOSE 8080
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar target/tim-sign-fys-0.0.1-SNAPSHOT.jar
注意:將
target/tim-sign-fys-0.0.1-SNAPSHOT.jar替換為你的工程打包好的.jar包路徑。
-
上傳至代碼倉庫后,使用阿里云鏡像服務(wù)進行構(gòu)建:
-
進入鏡像管理,
立即構(gòu)建鏡像:
-
進入容器服務(wù)控制臺,使用構(gòu)建好的鏡像創(chuàng)建應(yīng)用:
-
創(chuàng)建成功,SpringBoot應(yīng)用自動啟動:
-
如果配置了路由,則可以很方便地從公網(wǎng)訪問剛剛創(chuàng)建的SpringBoot應(yīng)用:
因為此示例項目沒有監(jiān)聽根路徑
'/',因此訪問根路徑報錯Whitelabel Error Page,但是這正好證明SpringBoot應(yīng)用已經(jīng)部署成功。
通過這種方法部署SpringBoot應(yīng)用到阿里云容器服務(wù)上簡單、高效。如果你的應(yīng)用不想運行在阿里云容器服務(wù)中,同樣可以使用阿里云容器鏡像服務(wù)遠程構(gòu)建你的
鏡像。然后將構(gòu)建好的鏡像部署到你指定的任意容器中即可。
原文地址: http://www.trojx.me/2018/07/23/docker-springboot-aliyun/






