使用项目 中的first项目进行修改
完成后的项目连接
*****************************************************************************************************
有问题可以参考以下内容
你也可以参考spring boot 官方文档
也可以参考该博客
*****************************************************************************************************
一 添加插件依赖
在pom.xml中添加 dockerfile-maven-plugin 插件。
com.spotify dockerfile-maven-plugin 1.3.7 my/one target/${project.build.finalName}.jar
该插件信息
下载不下来的话,请修改maven的settings.xml文件,添加以下内容
com.spotify
二 编写Dockerfile文件
FROM java:8VOLUME /tmpADD target/first-0.0.1-SNAPSHOT.jar app.jar#ENV JAVA_OPTS=""#ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
Dockerfile文件和pom.xml文件同级别
三 修改application.properties
首先在本地查看ip地址,找到一下信息
docker0 Link encap:Ethernet ××××××××××××××××××××××××××× inet addr:172.17.0.1 ××××××××× Mask:255.255.0.0
将数据库中的localhost修改为上面的172.17.0.1
spring.datasource.url=jdbc:mysql://172.17.0.1:3306/test
将redis修改为172.17.0.1
spring.redis.host=172.17.0.1
** 一定要确保你的mysql和redis可以远程连接
四 启动
a. 使用命令mvn clean package dockerfile:build
进行编译执行,成功之后
b. 使用命令docker image ls
可以看到生成的镜像
$ docker image lsREPOSITORY TAG IMAGE ID CREATED SIZEmy/one latest a9d0b04d7dc8 25 minutes ago 683MB
c. 使用命令
nohup docker run -p 8085:8088 -v /etc/localtime:/etc/localtime:ro --rm --name mine2 my/one &
可以启动该镜像。使用nohup是想把日志打印到本地。
-p 映射端口-v 挂载 该部分是挂载本地时间到容器时间,保持时间一致--rm 容器停止时删除该容器--name 容器重命名
d. 访问http://localhost:8085 可以看到页面打印出hello user