热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dockerfilepom打包及dockerfeign调用

1.打包发布到本地com.spotifydockerfile-maven-plugin

1.打包发布到本地

<plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.4.10</version><configuration><dockerfile>DockerFile</dockerfile><repository>${docker.image.prefix}/${project.artifactId}</repository><buildArgs><JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin>

pom添加此dockerfile插件。
若版本为1.4以下会出现 &#xff0c;
Could not acquire image ID or digest following build
标签为指定dockerfile文件目录&#xff0c;在不指定情况下根目录新建Dockerfile可能会找不到而报错&#xff1a;
Could not acquire image ID or digest following build
根目录新建Dockerfile&#xff08;pom同级&#xff09;

FROM java:8
EXPOSE 10012
ARG JAR_FILE
ADD ${JAR_FILE} /server-sync.jar
ENTRYPOINT ["java", "-jar","/server-sync.jar"]

这里根据需求写。

打开docker的Expose daemon on tcp://localhost:2375 without TLS
我这边使用的时windows直接勾选就行。
docker端口打开

然后执行

mvn clean package dockerfile:build -Dskiptests

就是maven clean&#43;mvn package&#43;dockerfile打包到容器&#xff0c;跳过测试。


feign调用

feign时springcloud的一个组件&#xff0c;服务通过注册到eureka发现服务&#xff0c;然后使用feign时&#xff0c;会自动去寻找对应的服务的地址端口。比resttemplate方便的地方在于不用写服务地址&#xff0c;就算服务地址改变了也不用更改任何代码。

docker说白了就是虚拟机&#xff0c;在系统下构建一块虚拟机linux&#xff0c;那docker首先会从网卡中分出一个网段&#xff0c;docker默认为桥接。然后分配到各个docker容器&#xff08;虚拟机&#xff09;下。
相当于docker在主机下面重新开了一个路由器&#xff0c;然后由docker分配ip&#xff0c;
那么当docker容器处于同一个主机时&#xff0c;我们只需要配置

eureka&#xff1a;instance:prefer-ip-address: true

把真实ip显示出来就行&#xff0c;此ip为docker分配给容器的ip。那么feign获得的此ip可以直接使用。

当服务处于不同主机时&#xff0c;使用此IP肯定时无法访问&#xff0c;不同主机之间应该使用主机ip来访问&#xff0c;docker通过映射端口也可以通过主机地址访问内到容器。

我们可以指定环境变量

EUREKA_INSTANCE_IP-ADDRESS&#61;192.168.0.58

192.168.0.58 ip为主机ip&#xff0c;
可以在docker启动时配置&#xff0c;也可以写在dockerfile中
启动时添加参数

-e "EUREKA_INSTANCE_IP-ADDRESS&#61;192.168.0.58"

dockerfile添加参数

ENV EUREKA_INSTANCE_IP-ADDRESS 192.168.0.58

192.168.0.58 ip为主机ip&#xff0c;

当然 nginx也是不错的选择&#xff0c;在此部一一赘述。


推荐阅读
author-avatar
naniwang99_537_742
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有