GitLab CI/CD - LAMP 项目的设置
GitLab CI/CD - setup for LAMP project
我们有一个常规的 LAMP 项目,我们最近搬到了 Gitlab(而不是 Github)。
之前一直使用Jenkins部署,现在打算迁移到Gitlab CI/CD.
我们有服务器A和B(带负载均衡器)用于开发版本和服务器C和D(同样,使用 LB)用于 生产 环境。
因为它是一个 LAMP 项目,部署就这么简单:
- 从回购中提取最新更改;
- 所有更改的文件都同步到 public 网络文件夹中;
- 一些实用程序,如 composer 和 npm 是 运行.
基本上我需要将更改部署到两个开发 VPS 和两个生产
我是否必须在它们每个上安装并启动 运行ner?还是有更有效的方法?
有很多可能的方法(我假设你是 运行 在 unix 上):
- 只需创建一个新服务器和 install 上面的 gitlab-runner 并注册它。在服务器本身上安装依赖项。
- 如果您对 docker 有信心,我建议您将其安装为带有
--image
标志的 Docker service. For the dependencies, create a docker image adding the utilies and refers the container image in the config.toml
advanced configuration。这将根据您的图像为每个构建触发一个容器。
- 如果您了解 Kubernetes,请使用 kubernetes executor 并直接在集群上构建。您仍然需要使用依赖项构建自己的图像,并使用
--kubernetes-image
在运行器配置中引用它
对于部署,只需在构建后使用 scp
或 rsync
等工具将文件复制到目标服务器上。更好(如果您的 LAMP 项目已 docker 化):构建一个 docker 图像,将其推送到注册表并拉到您的服务器。更好的是:将所有容器部署在像 Kubernetes 这样的编排器中。
我们有一个常规的 LAMP 项目,我们最近搬到了 Gitlab(而不是 Github)。
之前一直使用Jenkins部署,现在打算迁移到Gitlab CI/CD.
我们有服务器A和B(带负载均衡器)用于开发版本和服务器C和D(同样,使用 LB)用于 生产 环境。
因为它是一个 LAMP 项目,部署就这么简单: - 从回购中提取最新更改; - 所有更改的文件都同步到 public 网络文件夹中; - 一些实用程序,如 composer 和 npm 是 运行.
基本上我需要将更改部署到两个开发 VPS 和两个生产
我是否必须在它们每个上安装并启动 运行ner?还是有更有效的方法?
有很多可能的方法(我假设你是 运行 在 unix 上):
- 只需创建一个新服务器和 install 上面的 gitlab-runner 并注册它。在服务器本身上安装依赖项。
- 如果您对 docker 有信心,我建议您将其安装为带有
--image
标志的 Docker service. For the dependencies, create a docker image adding the utilies and refers the container image in theconfig.toml
advanced configuration。这将根据您的图像为每个构建触发一个容器。 - 如果您了解 Kubernetes,请使用 kubernetes executor 并直接在集群上构建。您仍然需要使用依赖项构建自己的图像,并使用
--kubernetes-image
在运行器配置中引用它
对于部署,只需在构建后使用 scp
或 rsync
等工具将文件复制到目标服务器上。更好(如果您的 LAMP 项目已 docker 化):构建一个 docker 图像,将其推送到注册表并拉到您的服务器。更好的是:将所有容器部署在像 Kubernetes 这样的编排器中。