2.配置生产环境

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java 面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001

最后修改日期:2023 年 9 月 18 日

启用 Space On-Premises 实例的自定义

Space On-Premises 的 Docker Compose 安装附带一个开箱即用的预定义配置。但是,要使 Space On-Premises 在生产环境中工作,应执行一些其他配置。

Space On-Premises 配置是存储在 Space 应用程序容器中的一组文件。若要配置本地空间,应将文件复制到主机,对其进行修改,然后将空间指向新的文件位置。conf

  1. 打开目录(例如,)并运行:{space_install_dir/config}``space-on-premises/config

    docker cp {space_container_id}:/home/space/circlet-server-onprem/config .

    note

    您的 Space On-Premises 实例必须正在运行。

    以下配置文件将被复制到主机上的目录中:{space_install_dir/config}

    • langservice.on-premises.conf

    • packages.on-premises.conf

    • space.on-premises.conf

    • vcs.on-premises.properties

  2. 根据需要编辑配置文件。

  3. 停止 Space 实例:

    docker-compose -p space-on-premises down
    docker-compose -p space-on-premises rm -f
  4. 打开位于 Space 安装目录中的文件。docker-compose.yml

  5. 更改 Space 配置文件的默认位置。为此,请编辑文件:docker-compose.yml

    1. 注释掉该行:config:{}

    2. 将对 docker 卷配置的每个引用从 更改为 。即,来自:config``./config

      ...
      volumes:
      - config:/home/init-config/config
      ...
      volumes:
      - config:/home/space/circlet-server-onprem/config
      ...
      volumes:
      - config:/home/space/git/vcs-hosting/config
      ...
      volumes:
      - config:/home/space/packages-server/config
      ...
      volumes:
      - config:/home/space/langservice-server/config
      ...

      自:

      ...
      volumes:
      - ./config:/home/init-config/config
      ...
      volumes:
      - ./config:/home/space/circlet-server-onprem/config
      ...
      volumes:
      - ./config:/home/space/git/vcs-hosting/config
      ...
      volumes:
      - ./config:/home/space/packages-server/config
      ...
      volumes:
      - ./config:/home/space/langservice-server/config
      ...
  6. Start Space On-Premises with the updated configuration:

    docker-compose -p space-on-premises up -d

使 Space On-Premises 实例可通过网络访问

默认情况下,Space On-Premises 的 Docker Compose 安装使用 和 作为基本 URL。此配置仅在本地运行 Space 时的概念验证方案中有效。如果要在单独的计算机上运行 Space 并使其可通过网络访问,则必须使用 nginx Web 服务器。它将用作反向代理并将请求重定向到 Space.'127.0.0.1''localhost'

先决条件:

  • Space 组件的域名已注册并解析为主机的 IP 地址。空间组件包括:空间应用程序、VCS 和包服务器。在我们的示例中,我们将使用以下名称:、 和 .'space.example.com''git.example.com''packages.example.com'

  • 相应的 TLS 证书安装在主机上。您可以从受信任的证书颁发机构(例如,[Let's Encrypt](https://letsencrypt.org/getting-started/))获取证书。

  • 主机安装了 nginx Web 服务器。您可以在 [官方网站](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/)上找到安装说明。

  1. 在主机上,在目录下创建 NGINX 配置文件。例如:'space.conf''/etc/nginx/conf.d'

在上面的示例中,更改:

  • 所有和指向证书真实路径的路径ssl_certificate_key ssl_certificate。

  • 所有值(、、、)为真实域名.'server_name''space.example.com''git.example.com''packages.example.com'

  1. 保存更改并应用配置:

  2. [使您的 Space 实例可供自定义](https://www.jetbrains.com.cn/en-us/help/space/configure-space-for-docker-compose-production-environment.html#customize-space-service-configuration)。

  3. 如果 Space 实例正在运行,请停止该实例。

  4. 打开 Space 安装目录。

  5. 在文件中,使用新的 URL 值更新 all 和 参数。例如:“space.on-premises.conf”url“altUrls”

    circlet {
        frontend {
            url = "https://space.example.com"
            internalUrl = "http://space:9084"
        }
        packages {
            notifications {
                enabled = true
            }
            types {
                maven {
                    url = "https://packages.example.com"
                }
    
                nuget {
                    url = "https://packages.example.com"
                }
    
                npm {
                    url = "https://packages.example.com"
                }
    
                container {
                    url = "https://packages.example.com"
                }
    
                pypi {
                    url = "https://packages.example.com"
                }
    
                composer {
                    url = "https://packages.example.com"
                }
    
                dart {
                    url = "https://packages.example.com"
                }
    
                files {
                    url = "https://packages.example.com"
                }
    
                crates {
                    url = "https://packages.example.com"
                }
            }
        }
    }
  6. 在文件中,使用新的 URL 值更新 all 和 参数。例如: packages.on-premises.conf``url``internalUrl

    circlet {
        packages {
            url = "https://packages.example.com"
            internalUrl = "http://packages:9390"
        }
    
        space {
            url = "https://space.example.com"
            internalUrl = "http://space:9084"
        }
    
        storage {
            aws {
                publicUrl = "https://minio.example.com"
            }
        }
    }
  7. 在文件中,使用新的 URL 值更新 和 参数。例如: vcs.on-premises.properties``base.url``circlet.url.ext

    base.url=https://git.example.com
    circlet.url.int=http://space:9084
    circlet.url.ext=https://space.example.com
  8. 使用更新的配置启动 Space On-Premises:

启用邮件服务器

Docker Compose 安装没有预配置的邮件服务器。下面的说明显示了如何创建 MailHog 邮件服务器并将其注册到 Space 中。

  1. 如果 Space 实例正在运行,请停止该实例。

  2. 打开 Space 安装目录。

  3. 在文件中,添加邮件服务器配置:docker-compose.yml

    services:
      mailhog:
        image: mailhog/mailhog
        ports:
        - 1025:1025 # SMTP server port
        - 8025:8025 # UI port
        networks:
        - "frontend"
  4. 向 Space 提供邮件服务器设置。您可以通过两种不同的方式执行此操作:使用空间管理 UI 或使用空间配置文件。

    1. 使用更新的配置启动 Space On-Premises:

    2. 在浏览器中打开您的 Space 实例并指定邮件设置,如下所示 page.

(Case-specific) Enable manual downloads in Space Packages

warning

These instructions only apply if you use a custom S3 storage for your Space instance. If you use the default storage, you can skip this chapter.

如果对 Space 实例使用自定义对象存储,则必须配置其 CORS 策略以允许接收来自任何源的 GET 请求:

否则,用户将无法从 Space 中的存储库页面手动下载包。单击“下载”按钮将导致错误。

  1. 登录 AWS 管理控制台并打开 [Amazon S3 控制台](https://console.aws.amazon.com/s3/)。

  2. 打开用于空间包的 S3 存储桶。

  3. 打开“权限”选项卡,将以下配置添加到“CORS”部分:

    [
        {
            "AllowedHeaders": [
                "*"
            ],
            "AllowedMethods": [
                "GET"
            ],
            "AllowedOrigins": [
                "*"
            ],
            "ExposeHeaders": []
        }
    ]
  4. Save the changes.

最后更新于