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


推荐阅读
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 本文介绍了Kettle资源库的基本概念、类型及其管理方法,同时探讨了Kettle的不同运行方式,包括图形界面、命令行以及API调用,并详细说明了日志记录的相关配置。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • andr ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍如何在Spring Boot项目中集成Redis,并通过具体案例展示其配置和使用方法。包括添加依赖、配置连接信息、自定义序列化方式以及实现仓储接口。 ... [详细]
  • TortoiseSVN与VisualSVN Server的安装及基本操作指南
    本文详细介绍了如何安装VisualSVN Server以及TortoiseSVN客户端,并提供了基本的操作步骤,包括配置仓库、用户管理及权限设置等关键环节。 ... [详细]
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社区 版权所有