java版spring cloud+spring boot+redis多租户社交电子商务平台 (十一)docker部署spring cloud项目...
一、docker簡介
電子商務社交平臺源碼請加企鵝求求:一零三八七七四六二六。Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平臺。 Docker通常用于如下場景:
web應用的自動化打包和發布;
自動化測試和持續集成、發布;
在服務型環境中部署和調整數據庫或其他的后臺應用;
從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境。
Docker 的優點
1、簡化程序: Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。
2、避免選擇恐懼癥: 如果你有選擇恐懼癥,還是資深患者。Docker 幫你 打包你的糾結!比如 Docker 鏡像;Docker 鏡像中包含了運行環境和配置,所以 Docker 可以簡化部署多種應用實例工作。比如 Web 應用、后臺應用、數據庫應用、大數據應用比如 Hadoop 集群、消息隊列等等都可以打包成一個鏡像部署。
3、節省開支:
一方面,云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
上面文字參考了相關文章;另,關于docker 的安裝和基本的使用見相關教程。
二、準備工作
環境條件:
linux系統,不建議windows
docker最新版本
jdk 1.8
maven3.0
本文采用的工程來自第一篇文章的工程,采用maven的方式去構建項目,并采用docker-maven-plugin去構建docker鏡像。
三、改造工程、構建鏡像
改造eureka-server工程
在pom文件加上插件:
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- tag::plugin[] --><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>0.4.3</version><configuration><imageName>${docker.image.prefix}/${project.artifactId}</imageName><dockerDirectory>src/main/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin><!-- end::plugin[] --></plugins></build> 復制代碼Spotify 的 docker-maven-plugin 插件是用maven插件方式構建docker鏡像的。
imageName指定了鏡像的名字,本例為 forep/eureka-serverdockerDirectory指定 Dockerfile 的位置resources是指那些需要和 Dockerfile 放在一起,在構建鏡像時使用的文件,一般應用 jar 包需要納入。
修改下配置文件:
server:port: 8761 eureka:instance:prefer-ip-address: trueclient:registerWithEureka: falsefetchRegistry: false<br> 復制代碼編寫dockerfile文件:
FROM frolvlad/alpine-oraclejdk8:slim VOLUME /tmp ADD eureka-server-0.0.1-SNAPSHOT.jar app.jar #RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8761 復制代碼docker file編寫指令:
FROM
FROM指令必須指定且需要在Dockerfile其他指令的前面,指定的基礎image可以是官方遠程倉庫中的,也可以位于本地倉庫。后續的指令都依賴于該指令指定的image。當在同一個Dockerfile中建立多個鏡像時,可以使用多個FROM指令。
VOLUME
格式為:
使容器中的一個目錄具有持久化存儲數據的功能,該目錄可以被容器本身使用,也可以共享給其他容器。當容器中的應用有持久化數據的需求時可以在Dockerfile中使用該指令。
ADD
從src目錄復制文件到容器的dest。其中src可以是Dockerfile所在目錄的相對路徑,也可以是一個URL,還可以是一個壓縮包
ENTRYPOINT
指定Docker容器啟動時執行的命令,可以多次設置,但是只有最后一個有效。
EXPOSE
為Docker容器設置對外的端口號。在啟動時,可以使用-p選項或者-P選項。
構建鏡像
執行構建docker鏡像maven命令:
構建eureka-server鏡像成功。
同理構建service-hi鏡像
- pom文件導入同eurek-server
- 修改下配置文件:
需要JAVASpring Cloud大型企業分布式微服務云構建的B2B2C電子商務平臺源碼請加企鵝求求:一零三八七七四六二六
轉載于:https://juejin.im/post/5cef94546fb9a07ea33bfa01
總結
以上是生活随笔為你收集整理的java版spring cloud+spring boot+redis多租户社交电子商务平台 (十一)docker部署spring cloud项目...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RPA或成为日本大银行“瘦身”潮的催化剂
- 下一篇: 架构阅读笔记14