新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理(一)
新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理
工作之餘把之前學的串起來 後面把前端也加進來 形成一個體系,對未來開發可以作為參考
1.Springboot打包
網上快速搭建一個springboot的教程很多這裡省略。測試本地環境可以執行成功後進行專案打包工作。打包有兩種形式,war包與jar包。springboot官方推薦打包為jar包 。其中已經包含了一個tomcat伺服器。開啟idea編輯器,右側maven工具箱的Lifecycle先後執行compiler package指令。如果有報錯 應該是依賴包沒有裝好 點clean後重新下載必須的依賴。
打包完成後 可以看到專案根目錄下的target目錄下多了一個專案名+版本號命名的jar包。
2.Springboot配置docker
為了便於docker容器化應用 需要在springboot中配置docker.
1.新增依賴。在pom.xml配置檔案中加入docker maven外掛。之前按照網上教程${docker.image.prefix}會報錯 暫時沒解決.只能手動指定docker映象名詞為dockertest。
<!-- Docker maven plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>dockertest/${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>
2.編寫dockerFile檔案。在專案src/main路徑下新建docker資料夾。在該資料夾下新建DockFile檔案。
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD engine_three-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
解釋下這個配置檔案:
VOLUME 指定了臨時檔案目錄為/tmp。其效果是在主機 /var/lib/docker 目錄下建立了一個臨時檔案,並連結到容器的/tmp。改步驟是可選的,如果涉及到檔案系統的應用就很有必要了。/tmp目錄用來持久化到 Docker 資料資料夾,因為 Spring Boot 使用的內嵌 Tomcat 容器預設使用/tmp作為工作目錄
專案的 jar 檔案作為 “app.jar” 新增到容器的
ENTRYPOINT 執行專案 app.jar。為了縮短 Tomcat 啟動時間,新增一個系統屬性指向 “/dev/urandom” 作為 Entropy Source
然後專案重新編譯打包完成。
測試瀏覽器開啟localhost:8080
測試專案通過。
下一章使用本地虛擬機器搭建一個centos環境。