1.打包成可执行jar包
2.编写Dockerfile文件
#基础镜像,如果本地没有,会从远程仓库拉取
FROM openjdk:8-jdk-alpine
#镜像制作人
MAINTAINER luosai
#在容器中创建挂载点,可以多个VOLUME["/tmp"]
#VOLUME /tmp
#声明了容器应该打开的端口并没有实际上将它打开
EXPOSE 11002
#定义参数
#ARG JAR_FILE
#拷贝本地文件到镜像中
#COPY ${JAR_FILE} app.jar
ADD ./gateway-app-1.1.13.jar ./app.jar
#指定容器启动时要执行的命令,但如果存在CMD命令,cmd中的参数会被附加到ENTRYPOINT指令的后面
ENTRYPOINT ["java", "-jar", "app.jar"]
3.docker 编译
Dockerfile 和需要的构建放在同一个文件夹下
docker build -t 名称:标签
4.docker运行(验证镜像包是否可运行)
docker run -it(d 后台运行,退出控制器仍然可运行) 名称:标签
5.推送远程仓库
1、docker login harbor仓库 -u 用户名
2、docker tag 服务名称:tag名称 harbor仓库/服务名称:tag名称
3、docker push harbor仓库/服务名称:tag名称
6. 将配置文件上传到 /wls/wls81/gateway-service/conf/ 目录下(可改为其他目录)
bootstrap.properties
bootstrap-dev.properties
bootstrap-test.properties
bootstrap-prd.properties
7.docker运行命令:
docker run -itd -v /wls/wls81/gateway-service/conf/:/config/ -v /wls/applogs/docker/gateway-service/:/wls/applogs/gateway-service/ --name=gateway-service gateway-service:v1.1.13 --spring.profiles.active=dev -server -Xms512m -Xmx512m -XX:+PrintGCTimeStamps -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=6 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -XX:NewRatio=3 -XX:SurvivorRatio=8 -XX:+CMSScavengeBeforeRemark -Xloggc:/wls/applogs/gateway-service/gc.log
注:
-v /wls/wls81/gateway-service/conf/:/config/ 为配置文件挂载卷,根据实际目录修改
-v /wls/applogs/docker/gateway-service/:/wls/applogs/gateway-service/ 为日志挂在卷,根据实际目录修改
-Dspring.profiles.active=dev 指定运行环境。dev开发环境,test 测试,prd生产环境
其中-v 中挂载卷主机目录根据实际情况配置