Dockfile镜像部署jar
程序员文章站
2022-07-14 12:11:19
...
Dockfile 配置
#base mirror
FROM anapsix/alpine-java
#create by
MAINTAINER username<[email protected]>
#set workdir
WORKDIR /ipet
#拷贝文件到容器
ADD ipet-server-0.0.1-SNAPSHOT.jar /ipet/ipet.jar
#build arg
#target run environment:test,dev,prod
ARG TARGET_VEN
#add profiles for target enviornment
COPY /config/${TARGET_VEN}/application-${TARGET_VEN}.yml /ipet/config/application-prod.yml
# 暂定
ENV JAVA_OPTS="-server -Xms1024m -Xmx1024m"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /ipet/ipet.jar" ]
docker部署镜像文件到测试机的流程
- 将application.yml 的spring.profiles.active设置为测试环境
- 将application.yml 的redis的host改成redis服务所在服务器的ip
- 将项目打成jar包:
mvn clean package
,使jar包的名称及后缀名与\ipet-server\doc\docker\Dockerfile里的jar名称保持一致。否则无法生成镜像文件。 - docker verson: 18.03.1-ce
- 安装docker服务
-
yum install docker
- 启动docker容器
-
service docker start
- 测试服务器上手动在根目录创建/ipet文件夹(此目录及子目录下放置jar包和DockerFile以及对应运行环境的配置文件)
- 将项目jar包和DockerFile上传到/ipet文件夹下,rz命令上传 不支持就
yum install -y lrzsz
- 进入/ipet目录,创建/config文件夹。进入config文件夹,根据服务运行的环境创建dev、test、prod文件夹。再在每个环境的文件夹下上传对应的application-*.yml。
- 进入/ipet目录执行命令:
docker build --build-arg TARGET_VEN=prod -t ipet:v1.0 .
- -t 后面为镜像名称及版本号,如果不加版本号默认是lastest,
.
表示当前执行路径下的Dockerfile,TARGET_VEN
为服务器环境相关配置 - 执行成功后最后又Successfully标识以及创建镜像成功后的IMAGE ID
- 也可执行命令:
docker images
查看ipet的镜像信息。需要用到IMAGE ID - 执行命令:
docker run --restart=on-fialure:5 --name ipet -p 8088:8088 -v /home/shangtang/ipet/load:/home/shangtang/ipet/load -v /home/shangtang/ipet/server_log:/home/shangtang/ipet/server_log --privileged=true -d IMAGE ID
。
命令及注释
命令 | 注释 |
---|---|
–restart=on-fialure:5 | 表示当容器退出代码为非0时,Docker会尝试自动重启该容器,最多5次 |
–name ipet | 命名一个容器名称,后续可以启动,停止 |
-p 8088:8088 | -p 暴露端口;前一个8088是宿主机端口(访问端口),后一个8088为容器端口。表示端口映射关系。端口号取决于application-*.yml的server-port配置 |
-v /home/shangtang/ipet/load:/home/shangtang/ipet/load | -v 目录挂载,冒号前面是宿主机目录,后面是docker容器目录。将用户的上传文件保存到宿主机上。路径取决于application-*.yml的LoadFileConfig的配置(项目中自定义的属性) |
-v /home/shangtang/ipet/server_log:/home/shangtang/ipet/server_log | 用于保存日志路径,路径取决于logback-spring.yml的springProfile的配置 |
-d | 后台执行 |
IMAGE ID | Dockerfile创建成功后的镜像ID |
- 执行命令:
docker ps
可以看到镜像在容器中的运行信息。有个CONTAINER ID。 - 执行命令:
docker logs CONTAINER ID
可查看该容器的运行日志。 - 停止ipet服务可执行命令:
docker stop CONTAINER ID
。 - 再次启动ipet服务可执行命令:
docker start CONTAINER ID
或者docker start ipet
(ipet为创建时–name的名称)。 - 删除ipet容器可执行命令:
docker rm CONTAINER ID
。 - 删除ipet镜像可执行命令:
docker rmi IMAGE ID
上一篇: 性能监控/优化系列——JVM监控/调优
下一篇: 猫狗队列问题
推荐阅读
-
Linux利用Shell脚本部署jar包项目的完整步骤
-
Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
-
SQL Server 2008 数据库镜像部署实例之三 配置见证服务器
-
SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移
-
SQL Server 2008 数据库镜像部署实例之一 数据库准备
-
SQL Server 2008 R2数据库镜像部署图文教程
-
在eclipse中使用Maven分模块搭建SSM框架,创建jar、war、pom工程模块教学,项目的热部署,需要的可以留下邮箱,给大家发整理过的Maven笔记
-
oracle:docker镜像部署11g 创建用户名,远程连接
-
Dockfile 生成docker镜像文件大小的比较
-
Maven deploy部署jar包到远程私仓