2. 配置生产环境
2. 配置生产环境
程序员朱永胜有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步, 认准
https://blog.zysicyj.top
最后修改日期:2023 年 9 月 18 日
启用 Space On-Premises 实例的自定义
Space On-Premises 的 Docker Compose 安装附带一个开箱即用的预定义配置。但是,要使 Space On-Premises 在生产环境中工作,应执行一些其他配置。
Space On-Premises 配置是存储在 Space 应用程序容器中的一组文件。若要配置本地空间,应将文件复制到主机,对其进行修改,然后将空间指向新的文件位置。conf
打开目录(例如,)并运行:
{space_install_dir/config}``space-on-premises/config
1
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
根据需要编辑配置文件。
停止 Space 实例:
1
2docker-compose -p space-on-premises down
docker-compose -p space-on-premises rm -f打开位于 Space 安装目录中的文件。
docker-compose.yml
更改 Space 配置文件的默认位置。为此,请编辑文件:
docker-compose.yml
注释掉该行:
config:{}
将对 docker 卷配置的每个引用从 更改为。即,来自:
config``./config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16...
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
...自:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16...
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
...
Start Space On-Premises with the updated configuration:
1
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/)上找到安装说明。
- 在主机上,在目录下创建 NGINX 配置文件。例如:’space.conf’’/etc/nginx/conf.d’
在上面的示例中,更改:
- 所有和指向证书真实路径的路径 ssl_certificate_key ssl_certificate。
- 所有值(、、、)为真实域名.’server_name’’space.example.com’’git.example.com’’packages.example.com’
保存更改并应用配置:
[使您的 Space 实例可供自定义](https://www.jetbrains.com.cn/en-us/help/space/configure-space-for-docker-compose-production-environment.html#customize-space-service-configuration)。
如果 Space 实例正在运行,请停止该实例。
打开 Space 安装目录。
在文件中,使用新的 URL 值更新 all 和 参数。例如:”space.on-premises.conf”url”altUrls”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48circlet {
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"
}
}
}
}在文件中,使用新的 URL 值更新 all 和 参数。例如:
packages.on-premises.conf``url``internalUrl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17circlet {
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"
}
}
}在文件中,使用新的 URL 值更新 和 参数。例如:
vcs.on-premises.properties``base.url``circlet.url.ext
1
2
3base.url=https://git.example.com
circlet.url.int=http://space:9084
circlet.url.ext=https://space.example.com使用更新的配置启动 Space On-Premises:
启用邮件服务器
Docker Compose 安装没有预配置的邮件服务器。下面的说明显示了如何创建 MailHog 邮件服务器并将其注册到 Space 中。
如果 Space 实例正在运行,请停止该实例。
打开 Space 安装目录。
在文件中,添加邮件服务器配置:
docker-compose.yml
1
2
3
4
5
6
7
8services:
mailhog:
image: mailhog/mailhog
ports:
- 1025:1025 # SMTP server port
- 8025:8025 # UI port
networks:
- "frontend"向 Space 提供邮件服务器设置。您可以通过两种不同的方式执行此操作:使用空间管理 UI 或使用空间配置文件。
- 使用更新的配置启动 Space On-Premises:
- 在浏览器中打开您的 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 中的存储库页面手动下载包。单击 “ 下载 “ 按钮将导致错误。
登录 AWS 管理控制台并打开 [Amazon S3 控制台](https://console.aws.amazon.com/s3/)。
打开用于空间包的 S3 存储桶。
打开 “ 权限 “ 选项卡,将以下配置添加到 “CORS” 部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]Save the changes.