Docker部署SpringBoot项目
两个教程:
步骤
- 按照第一个教程,在项目中新建Dockerfile文件及相应的文件夹。而后在maven中的pom文件中添加相应的插件和参数。
- 打包成为jar文件 (使用Maven中的package进行打包或使用mvn package)
- 而后将jar文件及Dockerfile上传到服务器文件夹中。
- cd到该文件夹中
- 执行docker build -t [images名称] .
- 获得了该项目的imagesID后,执行
- docker run -d -p 80:80 --name [name实例名称] --link [mysql实例id]:[别名] [项目imagesID]
备注
- 关于第六条命令,执行该条命令后。Docker会自动将Dockerfile依赖的父images下载,并和代码结合生成一个新的images。如果你没有命名Images名称,则为空。
- 关于第八条命令,--link [该处填写目前需要连接的mysql实例ID]:[一般填写mysql] //记得,冒号前者填写的是实例的id,后者填写mysql后。需要将配置文件中的127.0.0.1或localhost,修改为mysql。
- [别名]可用于连接数据库 (具体可以看第二个教程)
- 关于打包jar时数据库切换到服务器数据库的问题 - 先在本地打包好,而后用编辑器修改配置文件
- 如果是国外的镜像,还需要考虑镜像时间不一致的问题。可以在docker run语句中增加“-v /etc/localtime:/etc/localtime”来同步宿主机时间。
Dockerfile 文件
FROM frolvlad/alpine-oraclejdk8:slim (这是父类images,容器将在此运行)
VOLUME /tmp
ADD [jar包名称].jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security .egd=file:/dev/./urandom -jar /app.jar" ]