Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器
生活随笔
收集整理的這篇文章主要介紹了
Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Dockerfile 將springboot項(xiàng)目jar包打成鏡像,并將yml配置文件外掛。
# 以一個(gè)鏡像為基礎(chǔ),在其上進(jìn)行定制。就像我們之前運(yùn)行了一個(gè) nginx 鏡像的容器,再進(jìn)行修改一樣,基礎(chǔ)鏡像是必須指定的。而 FROM 就是指定 基礎(chǔ)鏡像,因此一個(gè) Dockerfile 中 FROM 是必備的指令,并且必須是第一條指令。
FROM centos:7
# 聲明作者
MAINTAINER developer
# 在構(gòu)建鏡像時(shí)執(zhí)行腳本
RUN yum -y install java
# 指定工作目錄。用 WORKDIR 指定的工作目錄,會(huì)在構(gòu)建鏡像的每一層中都存在。
WORKDIR /opt/
# 復(fù)制指令,從上下文目錄中復(fù)制文件或者目錄到容器里指定路徑。
COPY test-0.0.1-SNAPSHOT.jar /opt/test/
COPY application.yml /opt/test/application.yml
# 僅僅只是聲明端口。
EXPOSE 8899
# 類似于 RUN 指令,用于運(yùn)行程序
# 優(yōu)點(diǎn):在執(zhí)行 docker run 的時(shí)候可以指定 ENTRYPOINT 運(yùn)行所需的參數(shù)。
# 注意:如果 Dockerfile 中如果存在多個(gè) ENTRYPOINT 指令,僅最后一個(gè)生效。
ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]
上面用到的復(fù)制指令為COPY,還有一個(gè)命令為ADD,ADD 指令和 COPY 的使用格類似(同樣需求下,官方推薦使用 COPY)。功能也類似,不同之處如下:
- ADD 的優(yōu)點(diǎn):在執(zhí)行 <源文件> 為 tar 壓縮文件的話,壓縮格式為 gzip, bzip2 以及 xz 的情況下,會(huì)自動(dòng)復(fù)制并解壓到 <目標(biāo)路徑>。
- ADD 的缺點(diǎn):在不解壓的前提下,無(wú)法復(fù)制 tar 壓縮文件。會(huì)令鏡像構(gòu)建緩存失效,從而可能會(huì)令鏡像構(gòu)建變得比較緩慢。具體是否使用,可以根據(jù)是否需要自動(dòng)解壓來(lái)決定。
去掉注釋:
FROM centos:7
MAINTAINER developer
RUN yum -y install java
WORKDIR /opt/
COPY test-0.0.1-SNAPSHOT.jar /opt/test/
COPY application.yml /opt/test/application.yml
EXPOSE 8899
ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]
總結(jié)
以上是生活随笔為你收集整理的Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在Chrome中打开网页时出现以下问题
- 下一篇: 解决gitte提交报错 error: G