热门标签 | 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;在此部一一赘述。


推荐阅读
  • spring boot使用jetty无法启动 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 在尝试通过自定义端口部署Spring Cloud Eureka时遇到了连接失败的问题。本文详细描述了问题的现象,并提供了有效的解决方案,以帮助遇到类似情况的开发者。 ... [详细]
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文详细介绍了如何在 Vue CLI 3.0 和 2.0 中配置 proxy 来解决开发环境下的跨域问题,包括具体的配置项和使用场景。 ... [详细]
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社区 版权所有