一. 使用Dockerfile构建微服务镜像
本文是基于linux构建Docker镜像
在部署springcloud 微服务项目前,首先搭建Docker 环境,参考https://blog.csdn.net/weixin_39565641/article/details/105580669 文章中2.2节,可以简单快速,搭建好所需环境。
1. 打包微服务
1、使用maven把eureka服务打包为 ***.jar 包 例如:suninfo-analyse-1.0.jar
2、上传suninfo-analyse-1.0.jar 到linux 文件目录下 例如:/usr/local/project
2. 创建Dockerfile文件
创建Dockerfile 文件,在/usr/local/micro目录下, 添加如下内容:
[root@localhost micro]# touch Dockerfile
[root@localhost micro]# vim Dockerfile
#基于java8
FROM java:8
#创建一个目录存放jar包(在容器里面创建目录)
RUN mkdir -p /suninfo/config /suninfo/logs
#复制jar包以及相关配置文件(复制jar包到容器的根目录)
COPY suninfo-analyse-1.0.jar /suninfo-analyse-1.0.jar
#添加进入docker容器后的目录
WORKDIR /suninfo
#配置项目端口
CMD ["--server.port=8888"]
#对外暴露的端口号
EXPOSE 8888
#修改文件的创建修改时间
RUN bash -c 'touch /suninfo-analyse-1.0.jar'
#运行脚本,启动springboot项目,这里我们指定加载配置文件的位置,并且通过数据卷挂载同步到容器中,多个配置文件逗号隔开
ENTRYPOINT ["java","-jar","/suninfo-analyse-1.0.jar"]
ENTRYPOINT ["java","-jar","/suninfo-analyse-1.0.jar","-Dspring.config.location=/suninfo/config/application.yml,/suninfo/config/app.properties"]
-v,将容器内的/usr/data挂载到宿主机的/home/admin/app。以后jar包有更新,丢到宿主机的/home/admin/app,然后重启容器即可
docker run -dit --name suninfo-analyse -p 8888:8888 -v /usr/local/project/config:/suninfo/config -v /usr/local/project:/ --privileged=true suninfo-analyse:v1
3. 构建服务镜像
[root@master micro]# docker build -t suninfo-analyse:v1 .
4. 启动镜像
[root@root micro]# docker run -d -p 8888:8888 suninfo-analyse:v1
访问 http://docker主机ip:8888/