我是这样使用SpringBoot(docker挂载文件)

目录

根据我是这样使用SpringBoot(静态资源)中讲的,静态资源是需要指向到外部文件的。而docker部署的项目是在docker容器中,配置文件指向的目录也是容器中的目录。静态资源是需要更新到宿主机中的。下面通过文件挂载的方式,通过更新宿主机的某目录来完成静态资源热更新的工作。

修改项目

docker容器是linux系统,目录结构同linux的。我是这样使用SpringBoot(静态资源)中,配置spring.resources.static-locations值为windows的目录。用了docker之后,这个配置项可以配置在application.yml文件中了,不需要每个环境配置。因为在docker容器中运行都是相同目录的,多环境配置反而不容易部署。
编辑application-dev.yml,删除spring.resources.static-locations配置。
原配置:

custom:
  name: bhhello-app-dev
spring:
  resources:
    static-locations: file:F:/test/, classpath:/static/, classpath:/public/, classpath:/resources/, classpath:/META-INF/resources

修改成

custom:
  name: bhhello-app-dev

编辑application.yml,增加spring.resources.static-locations配置,结果如下:

server:
  port: 80
spring:
  profiles:
    active: dev
  resources:
    static-locations: file:/usr/local/bhhello/static, classpath:/static/
custom:
  name: bhhello-app

修改Dockerfile文件,增加VOLUME项。如下

# 基础镜像
FROM openjdk:8-jdk-alpine
# 对应pom.xml文件中的dockerfile-maven-plugin插件buildArgs配置项JAR_FILE的值
ARG JAR_FILE
# 复制打包完成后的jar文件到/opt目录下
COPY ${JAR_FILE} /opt/app.jar
# 挂载/usr/local/bhhello目录到主机
VOLUME /usr/local/bhhello
# 启动容器时执行
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/opt/app.jar"]
# 使用端口80
EXPOSE 80

把上一章中的docker容器与镜像删除。执行命令mvn clean package dockerfile:build打包docker镜像。docker镜像打包上传过程请参考前面几章。我是这样使用SpringBoot(加入Docker)我是这样使用SpringBoot(部署到docker服务器)我是这样使用SpringBoot(nexus3搭建docker本地私服)。根据需求打包成相应的镜像。

关于挂载的目录

打开VirtualBox,查看目录关系。(因为这是windows8.1的系统,如果是linux会简单一些)

目录挂载

可以看到本机的F:\ebertemp\demo自动挂载到VirtualBox的/Demo目录。这里的关系在我是这样使用SpringBoot(安装docker)有详细说明。
如果要让项目file:/usr/local/bhhello/static的目录指向本地的一个目录。需要如下挂载:

  1. 本地F:\ebertemp\demo中创建目录挂载到docker宿主机的/Demo目录
  2. 将/Demo中的相应目录挂载到容器的/usr/local/bhhello目录

项目部署

本地创建目录F:\ebertemp\demo\bhhello,这个目录对应到docker宿主机的/Demo/bhhello。接下去在创建容器的时候将/Demo/bhhello目录挂载到容器的/usr/local/bhhello目录。这样,服务端查找file:/usr/local/bhhello/static目录就会指向/Demo/bhhello/static,宿主机会指向本地的F:\ebertemp\demo\bhhello\static。
命令行中执行: docker run --name=bhhello -p 80:80 -v /Demo/bhhello:/usr/local/bhhello --privileged=true -d docker.blueheart.cn/biboheart/bhhello:1.0.0-SNAPSHOT

运行容器

容器正在运行
在F:\ebertemp\demo\bhhello目录中创建文件夹static,放三张图片到F:\ebertemp\demo\bhhello\static目录中。
静态资源文件

分别访问http://192.168.99.100/001.jpghttp://192.168.99.100/002.jpghttp://192.168.99.100/003.jpghttp://192.168.99.100/004.jpg。003.jpg哪来?请看我是这样使用SpringBoot(静态资源)。这是就不一一截图了。结果与我是这样使用SpringBoot(静态资源)一致。

部署到centos服务器

先push镜像到镜像服务器,这个前面有讲过。push完成后,在centos服务器中pull镜像,创建容器。centos中不像windows那样两层挂载。这里就在centos服务器中创建目录/usr/local/bhhello(与容器目录相同)挂载。
创建并进入目录/usr/local/bhhello/static,上传资源文件到目录中,这里上传的还是上面的三张图片。结果如下图


服务器上的资源文件

资源列表

执行命令(具体镜像名称与版本号根据自己实际情况): docker pull docker.blueheart.cn/biboheart/bhhello:1.0.0-SNAPSHOT


image列表

执行如下命令创建容器,我的服务器中已经使用了80端口,这里映射到9991端口
docker run --name=bhhello \
-p 9991:80 \
-v /usr/local/bhhello:/usr/local/bhhello \
--privileged=true \
-d docker.blueheart.cn/biboheart/bhhello:1.0.0-SNAPSHOT
创建容器

访问服务(我这里的服务器地址是192.168.2.106),访问结果与本地一致,这里不一一截图了。


访问服务器
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容

  • 你一个中年人,孩子基本也都生完了,你还要那么光溜的皮肤、浓密的头发干什么?那是年轻的时候,给你吸引异性用...
    simon_5c61阅读 325评论 1 1
  • 项目名Swift 项目简介:去中心化的服务购买平台,比如说可以帮你取名字,设计标志,或者包装简历。注册送100 S...
    Alee文润阅读 138评论 0 0
  • 我为什么这样说,是因为,能力弱的人,在面对一些很小的困难的时候,需要两个人共同处理,他立马就会弃你而去,因为他没办...
    goleo阅读 791评论 0 0
  • The "Construction plan" app respects and protects the pri...
    逍遥alan阅读 276评论 0 0