快捷搜索:  as

我是这样使用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的目录指向本地的一个目录。必要如下挂载:

本地F:\ebertemp\demo中创建目录挂载到docker宿主机的/Demo目录

将/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.jpg,http://192.168.99.100/002.jpg,http://192.168.99.100/003.jpg,http://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),造访结果与本地同等,这里不逐一截图了。

造访办事器

您可能还会对下面的文章感兴趣: