Spring Boot项目生成镜像
- 创建目录,目录内包含
Dockerfile
, Spring Boot jar包
以及配置文件。Spring Boot
可以使用外部配置文件覆盖内部配置文件,方便之后的内容修改与维护。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6a3c27e199de4343b18fa969a014f7dd.png#pic_center)
- 编写
Dockerfile
。
# 基础镜像,很多回答都用的 jdk:8,但目前拉取不到该镜像,可能已经过时
FROM openjdk:8-jre
# 数据卷挂载,必须要有
VOLUME /tmp
# 将当前目录下的jar包上传到容器内的根目录下
ADD *.jar /app.jar
# 将当前目录内的配置文件上传到容器内的根目录下
ADD application.yaml /application.yaml
# 暴露端口
EXPOSE 8081
# ENTRYPOINT 指定这个容器启动的时候要运行的命令,最后指定了配置文件的位置
ENTRYPOINT ["java", "-Xms256m", "-Xmx256m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar", "--spring.config.location=/application.yaml"]
- 构建镜像。镜像构建时docker默认在当前目录下寻找名称为
Dockerfile
的文件。
# docker build -t 镜像名:版本 . 注意命令最后有一个"."
docker build -t zjc/reggie_out:2.0 .
- 运行容器。可以将宿主机上的静态文件挂载到容器上,方便访问
docker run -d -p 8081:8081 --name=reggie_out -v /opt/reggie/reggie_picture:/reggie_picture 镜像id