spring-boot:build-image 在代理后面
Posted
技术标签:
【中文标题】spring-boot:build-image 在代理后面【英文标题】:spring-boot:build-image behind a proxy 【发布时间】:2020-10-01 06:50:51 【问题描述】:我正在尝试从代理后面使用 spring boot 2.3.0 构建 docker 映像。
根据文档https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/maven-plugin/reference/html/#build-image-example-builder-configuration 我需要类似的东西
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version>
<configuration>
<image>
<env>
<HTTP_PROXY>http://proxy.example.com</HTTP_PROXY>
<HTTPS_PROXY>https://proxy.example.com</HTTPS_PROXY>
</env>
</image>
</configuration>
</plugin>
但我无法让它发挥作用。但是,当使用 BPL_ 为变量添加前缀时,我可以让它工作,如下所示
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version>
<configuration>
<image>
<env>
<BPL_HTTP_PROXY>http://proxy.example.com</BPL_HTTP_PROXY>
<BPL_HTTPS_PROXY>https://proxy.example.com</BPL_HTTPS_PROXY>
</env>
</image>
</configuration>
</plugin>
所以这是一个错误,或者我不明白的东西。
更好的是,这可以像从命令行一样在 pom 之外指定吗?我正在使用 powershell。
【问题讨论】:
我遇到了同样的问题,但是看起来该功能是 2.4 版附带的,而不是 2.3 版的 你可以在这里阅读docs.spring.io/spring-boot/docs/2.4.0/maven-plugin/reference/…。我用 2.4.3 对其进行了测试,它可以工作。 谢谢@jim-sellers,我遇到了Get "https://github.com/bell-sw/Liberica/releases/download/11.0.13+8/bellsoft-jre11.0.13+8-linux-amd64.tar.gz": dial tcp 140.82.112.4:443: connect: connection timed out
,不知道在哪里配置代理。您使用<configuration><image><env><HTTP_PROXY/><HTTPS_PROXY/></env></image></configuration>
的第一个示例终于成功了。
【参考方案1】:
你快到了,根据https://docs.spring.io/spring-boot/docs/2.5.6/maven-plugin/reference/htmlsingle/#build-image.examples.builder-configuration使用HTTP_PROXY
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<env>
<HTTP_PROXY>http://some.proxy:3011</HTTP_PROXY>
<HTTPS_PROXY>http://some.proxy:3011</HTTPS_PROXY>
</env>
</image>
</configuration>
如果您的主机上有代理并且您希望构建包使用它,您可以设置<HTTP_PROXY>http://host.docker.internal:3011</HTTP_PROXY>
和<HTTPS_PROXY>http://host.docker.internal:3011</HTTPS_PROXY>
host.docker.internal
是主机的 ip,用于在内部运行的命令容器
【讨论】:
以上是关于spring-boot:build-image 在代理后面的主要内容,如果未能解决你的问题,请参考以下文章
NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记