docker 使用 github 操作和 tailscale 在专用网络中使用 npm nexus 注册表进行构建

问题描述 投票:0回答:1

我有一个位于专用网络中的 Nexus 注册表 我需要 docker-compose 在 github 操作中构建,该操作可以构建一个 dockerfile,该文件可以交互/可访问 nexus

我已经完成了

  • 创建了 tailscale 网络,加入并向 tailnet 公开我的 Nexus 注册表(在 k8s 中)
  • nexus 注册表正在监听特定域,例如:example.com
  • 将 Nexus k8s 服务注册到 tailscale 之后 this 我们在 tailnet 域中拥有了 Nexus:
    <servicenamene>.tailxxxxx.ts.net

我已经设置了 github 操作,如下所示

        steps:
            - name: Tailscale
              uses: tailscale/github-action@v2
              with:
                oauth-client-id: ${{ secrets.TS_OAUTH_CLIENT_ID }}
                oauth-secret: ${{ secrets.TS_OAUTH_SECRET }}
                tags: "tag:k8s"
                version: 1.56.0
            - uses: actions/checkout@v2
            - run: docker login -u xxx -p ${{ secrets.DOCKER_PASSWORD }} xxx.xxx.io
            - run: |
                .... docker-compose build ...

Dockerfile
如下所示:


###

FROM node:$NODE_VERSION as builder

ARG NEXUS_NPM_TOKEN
ARG NEXUS_CERT_FILE

RUN npm config set //<servicenamene>.tailxxxxx.ts.net:8080/repository/npm-xxx/:_authToken $NEXUS_NPM_TOKEN  \
  && npm config set @psa:registry http://<servicenamene>.tailxxxxx.ts.net:8080/repository/npm-xxx/ 

###

但是,nexus 似乎不接受主机标头与

nexusHttpHost
$NEXUS_HTTP_HOST

不匹配的请求

有什么想法吗?

github-actions cicd tailscale
1个回答
0
投票

您的存储库管理器可能在“应用程序服务器设置”中启用了“强制基本 URL”。以下文档引用该设置不能很好地与反向代理一起使用(如 tailscale 入口)。

警告

除非 Sonatype 明确建议,否则请勿启用强制基本 URL

  • 启用此功能很可能会导致您的存储库管理器无法工作 正确地通过反向代理。强制基本 URL 的原始用例不再有效。

https://help.sonatype.com/en/customizing-server-configuration.html#application-server-settings

由于您使用 tailscale 作为入口(代理),发送到注册表服务器的主机标头可能是 tailnet 地址 (

servicename.tailxyz.ts.net
),这可能与注册表应用程序服务器的“基本 URL”不匹配。

© www.soinside.com 2019 - 2024. All rights reserved.