首先附上DockerFile文件
基础镜像使用java
FROM openjdk:8-alpine
VOLUME 指定了临时文件目录为/tmp。
其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
将jar包添加到容器中并更名为app.jar
ADD sinosig-0.0.1-SNAPSHOT.jar app.jar
定义jvm参数变量
ENV JAVA_OPTS="-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m
-Xss256k -XX:SurvivorRatio=8
-XX:+UseConcMarkSweepGC -XX:+PrintGCDateStamps -Xloggc:/logs/gc.log"
ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar -Duser.timezone=GMT+08 /app.jar
先更新github上的代码,执行mvn clean package打jar包,然后将jar包复制到DockerFile同级的文件夹下,执行docker build -t springbootimages --rm=true . 进行打镜像操作(--rm=true .意为删除产生的中间镜像),打好镜像后,执行docker run -d -p 8088:8088 --name myWebSite -v /root/springboot/dockerLogs:/logs/ -v /etc/localtime:/etc/localtime springbootimages来启动镜像
-Duser.timezone 意为设置时区,由于openjdk:8-alpine没有提供时区,在打印日志等操作时会有时间问题,所以设置时区为上海
-d 后台运行
-p 端口映射
--name 给容器起名
-v 文件挂载,将容器内的日志输出挂载到服务器指定路径上,并将服务器的时间用于容器的时间