开篇
近期,由于项目要多点部署,要求可移植程度高,所以我考虑将springboot工程构建成docker镜像,和其他依赖服务一起,使用docker-compose进行编排移植部署。这样可以省去安装各种依赖环境的烦恼,大大提高移植效率。
dockerfile详解
直接上代码,dockerfile位于工程根目录下,我会在里面逐行注释方便大家读懂。
#使用openjdk:8u302-jre作为基础镜像来构建,dockerfile必须以from开头
FROM openjdk:8u302-jre
#标记镜像的时区
RUN echo "Asia/Shanghai" > /etc/timezone
#添加环境变量 profile 既标记镜像运行时使用的配置文件
ENV PROFILES druid
#添加环境变量 容器中编码格式
ENV LANG en_US.UTF-8
#添加环境变量 服务虚拟机参数设定
ENV JAVA_OPTS "-Xms500m -Xmx1024m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"
#根据dockerfile所放的位置将jar包copy至容器中的目标位置
COPY admin/target/admin.jar /app.jar
#执行命令 该命令就是在容器中运行java工程的命令
CMD java $JAVA_OPTS -Dspring.profiles.active=${PROFILES} -jar /app.jar
# 暴露9090端口
EXPOSE 9090
构建镜像
构建镜像执行命令需要在dockerfile所在目录执行
# 执行构建命令
docker build -t xxxxx:1.0 .
命令执行中,如下图
#查看镜像
docker images
至此 镜像构建成功。
运行镜像及注意事项
使用刚才构建的镜像,构建容器并运行。
docker run -itd --name service -v D:/docker-storage/server/uploadPath:/home/server/uploadPath -p 9090:9090 test:1.0
这里容器的端口在dockerfile中已经通过expose定义过为9090