1.打jar包:
mvn clean install -Dmaven.test.skip=true
# 完了之后得到jar包: act-admin-1.0.0.jar
2.写Dockerfile
# Docker image for springboot file run
# VERSION 1.0.0
# Author: ltx
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER ltx <[email protected]>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD act-admin-1.0.0.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["nohup", "java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar", "--spring.profiles.active=dev", "> /dev/null 2>&1 &"]
3.上传jar包和Dockerfile到linux上,如下:
[[email protected] docker-jar]# ll
总用量 76228
-rw-r--r--. 1 root root 78050337 2月 5 15:55 act-admin-1.0.0.jar
-rw-r--r--. 1 root root 601 2月 5 17:03 Dockerfile
4.打docker镜像
# 进入目录, 执行:
docker build -t act-demo:1.0.0 .
# act-demo为镜像名, 1.0.0为镜像TAG
# 完了之后,查看镜像:
[[email protected] docker-jar]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
act-demo 1.0.0 d0ee47d440ce 24 minutes ago 799MB
5.启动
# 启动镜像
docker run --privileged -d -p 8080:8888 -v /home/oa/files:/qmy/oa/files -v /home/oa/logs:/logs -e JAVA_OPTS='-Xms256m -Xmx256m -XX:+HeapDumpOnOutOfMemoryError' --name act-demo-ltx act-demo:1.0.0
# 参数说明
# --privileged为授权创建本地目录/home/oa/files和/home/oa/logs
# 8888为springboot的服务端口
# 8080为服务器对外提供服务的端口,映射到docker容器的8888端口
# /qmy/oa/files为springboot项目里面配置的文件上传的存储目录
完了之后,查看实例:
[[email protected] docker-jar]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9cb08f403128 act-demo:1.0.0 "nohup java -Djava.s…" 22 minutes ago Up 22 minutes 0.0.0.0:8080->8888/tcp act-demo-ltx
6.随便找个接口验证下
查看接口验证的文件是否上传成功,OK!
[[email protected] docker-jar]# cd /home/oa/files
[[email protected] files]# ll
总用量 20
-rw-r--r--. 1 root root 17089 2月 5 17:19 5a308eb9-b318-4cb8-9b98-3c759f145233.png