dockerfile 构建 spring boot 镜像

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

通用dockerfile  利用已经编译好的.jar 来构建镜像。要构建的目录如下:

dockerfile 构建 spring boot 镜像_第1张图片

[root@iZuf61quxhnlk9m2tkx16cZ demo_jar]# docker build -t demo:1 .

dockerfile 构建 spring boot 镜像_第2张图片

运行镜像:

[root@iZuf61quxhnlk9m2tkx16cZ demo_jar]# docker run --rm --name demo -p 8154:8154 demo:1

dockerfile 构建 spring boot 镜像_第3张图片

服务已经启动了

dockerfile 文件如下:

FROM java:8-jre-alpine
MAINTAINER xx "[email protected]"
EXPOSE 8154
VOLUME /tmp
COPY . .
ENTRYPOINT ["java","-jar","/demo.jar"]

查看容器内部:

这个操作就是把当前目录下的所有文件都添加到了容器中。并且只是放在了 / 目录下面。

 

优化2: dockerfile 

FROM java:8-jre-alpine
MAINTAINER xxx"[email protected]"
EXPOSE 8154
RUN mkdir -p /usr/local/demo_app
VOLUME /tmp
COPY . /usr/local/demo_app
ENV JAVA_OPTS=""
ENTRYPOINT java ${JAVA_OPTS} -jar /usr/local/demo_app/demo.jar

运行:

docker run \
-p 8154:8154 \
--name demo \
--rm \
-e JAVA_OPTS='-server -Xmx512m -Xms512m' \
-d \
demo:1

 

优化3: dockerfile 

FROM java:8-jre-alpine
MAINTAINER xx"[email protected]"
EXPOSE 8154
RUN mkdir -p /usr/local/demo_app/config
VOLUME /tmp
COPY . /usr/local/demo_app
ENV JAVA_OPTS=""
WORKDIR /usr/local/demo_app
ENTRYPOINT java ${JAVA_OPTS} -jar /usr/local/demo_app/demo.jar

运行:

docker run \
-p 8154:8154 \
--name demo \
-e JAVA_OPTS='-server -Xmx512m -Xms512m' \
-v /usr/local/demo_app/logs:/usr/local/demo_app/logs \
-v /usr/local/demo_app/tmp:/tmp \
-v /usr/local/demo_app/config:/usr/local/demo_app/config \
-d \
demo:1

容器的工作目录为:

dockerfile 构建 spring boot 镜像_第4张图片

本机的目录为:

dockerfile 构建 spring boot 镜像_第5张图片

如果需要 application.yml 文件可以放在 /usr/local/demo_app/config 中如:

dockerfile 构建 spring boot 镜像_第6张图片

注意 如果demo.jar 包里也有这三个启动文件。那么spring boot 也有可能会读取到。就是读取完 file:config/applicaiton-test.yml 配置后,依然会去读取classspath:applicaiton-test.yml (Spring Boot v2.1.4.RELEASE, Spring v5.1.6.RELEASE)

但是 (Spring Boot v2.1.3.RELEASE, Spring v5.1.5.RELEASE) 中file:config/applicaiton-test.yml  的配置信息是读取不到的。最后还是要落地于实践

 

导出镜像:

[root@iZuf61quxhnlk9m2tkx16cZ ~]# docker save -o /usr/local/demo.tar demo:1

 

导入镜像:

[root@iZuf61quxhnlk9m2tkx16cZ ~]# docker load demo.tar

 

 

 

 

转载于:https://my.oschina.net/u/2552286/blog/3039133

你可能感兴趣的:(dockerfile 构建 spring boot 镜像)