dockerfile 构建 spring boot 镜像

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

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

运行镜像:

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

服务已经启动了

dockerfile 文件如下:

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

查看容器内部:

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

 

优化2: dockerfile 

FROM java:8-jre-alpine
MAINTAINER xxx"xxx@163.com"
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"xxxx@163.com"
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

容器的工作目录为:

本机的目录为:

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

注意 如果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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值