1. 程式人生 > >新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理(一)

新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理(一)

新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理

工作之餘把之前學的串起來 後面把前端也加進來 形成一個體系,對未來開發可以作為參考

1.Springboot打包

網上快速搭建一個springboot的教程很多這裡省略。測試本地環境可以執行成功後進行專案打包工作。打包有兩種形式,war包與jar包。springboot官方推薦打包為jar包 。其中已經包含了一個tomcat伺服器。開啟idea編輯器,右側maven工具箱的Lifecycle先後執行compiler package指令。如果有報錯 應該是依賴包沒有裝好 點clean後重新下載必須的依賴。

圖1

打包完成後 可以看到專案根目錄下的target目錄下多了一個專案名+版本號命名的jar包。
圖2

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環境。