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,不知道在哪里配置代理。您使用&lt;configuration&gt;&lt;image&gt;&lt;env&gt;&lt;HTTP_PROXY/&gt;&lt;HTTPS_PROXY/&gt;&lt;/env&gt;&lt;/image&gt;&lt;/configuration&gt; 的第一个示例终于成功了。 【参考方案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>

如果您的主机上有代理并且您希望构建包使用它,您可以设置&lt;HTTP_PROXY&gt;http://host.docker.internal:3011&lt;/HTTP_PROXY&gt;&lt;HTTPS_PROXY&gt;http://host.docker.internal:3011&lt;/HTTPS_PROXY&gt; host.docker.internal 是主机的 ip,用于在内部运行的命令容器

【讨论】:

以上是关于spring-boot:build-image 在代理后面的主要内容,如果未能解决你的问题,请参考以下文章

分配的变量引用在哪里,在堆栈中还是在堆中?

NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效