使用Docker部署Spring Boot项目

1.编写Dockerfile

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER luoyihao <xx@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD compositive-system.jar app.jar

ENV TimeZone=Asia/Shanghai
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone

# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","-Djasypt.encryptor.password=pwd","/app.jar"]

下面的配置能使Docker日志的时间与当前时间设置成一致的。

ENV TimeZone=Asia/Shanghai
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone

其中,ENTRYPOINT是java的执行命令。

-Djava.security.egd=file:/dev/./urandom是为了加快随机数的产生,减少应用启动时间。

如下面的配置:

ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","-Djasypt.encryptor.password=pwd","/app.jar"]

对应的执行命令为:

java -jar --spring.profiles.active=prod --jasypt.encryptor.password=pwd /app.jar

 

2.在服务器/projects(自定义)目录下新增compositive-system(项目名)文件夹,在文件夹内上传Dockerfile文件和Spring Boot项目的jar包。

 

3.运行

docker build -t compositive-system .

制作镜像(Image)。

 

4.运行

docker run -d -p 8002:8001 compositive-system

其中,项目后台代码配置的端口号是8001,我们把8001转换成8002输出。

 

5.打开防火墙选项中的8002端口或打开所有端口。

 

6.访问部署的应用,例如http://xx.xx.xx.xx:8002/nav/getAllNav。

 

posted @ 2021-06-03 12:36  罗毅豪  阅读(117)  评论(0编辑  收藏  举报