构建环境
流水线的正常运行不仅需要底层硬件的计算资源,还需要相应的环境依赖包、命令行工具与 SDK 等软件层面的支持。这些软件层面的支持又称为流水线的构建环境,分为官方环境与自定义镜像镜像两种类型。前往流水线设置中的“构建环境”下的基础环境调整环境类型。
官方环境
官方环境提供以下 SDK 和命令行工具:
SDK | 版本号 | 环境变量 | 命令行工具 | 版本号 | 环境变量 |
---|---|---|---|---|---|
jdk | v1.8.0_311 | /usr/local/lib/java/jdk-1.8.0_311/bin/java | helm | v2.16.9 | /usr/local/lib/helm/helm-2.16.9/helm |
jdk | v11.0.1 | /usr/local/lib/java/jdk-11.0.13/bin/java | helm | v3.6.3 | /usr/local/lib/helm/helm-3.6.3/linux-amd64/helm |
go | v1.13.15 | /usr/local/lib/go/go-1.13.15/bin/go | kubectl | v1.18.4 | /usr/local/lib/kubectl/kubectl-1.18.4/kubectl |
go | v1.14.15 | //usr/local/lib/go/go-1.14.15/bin/go | maven | v3.8.1 | /usr/local/lib/maven/maven-3.8.1/bin/mvn |
go | v1.15.15 | /usr/local/lib/go/go-1.15.15/bin/go | cmake | v3.21.4 | /usr/local/lib/cmake/cmake-3.21.4/bin/cmake |
go | v1.16.9 | /usr/local/lib/go/go-1.16.9/bin/go | gradle | v7.0.2 | /usr/local/lib/gradle/gradle-7.0.2/bin/gradle |
go | v1.17.2 | /usr/local/lib/go/go-1.17.2/bin/go | ant | v1.10.12 | /usr/local/lib/ant/ant-1.10.12/bin/ant |
nodejs | v10.24.1 | /usr/local/lib/nodejs/node-10.24.1/bin/node | composer | v2.2.2 | //usr/local/lib/composer/composer-2.2.2/composer |
nodejs | v12.22.7 | /usr/local/lib/nodejs/node-12.22.7/bin/node | python | v3.7.5 | /usr/local/lib/python/python-3.7.5/bin/python |
nodejs | v16.12.0 | /usr/local/lib/nodejs/node-16.12.0/bin/node | python | v3.8.6 | /usr/local/lib/python/python-3.8.6/bin/python |
dotnet | v2.2.207 | /usr/local/lib/dotnet/dotnet-2.2.207/dotnet | - | - | - |
dotnet | v3.1.201 | /usr/local/lib/dotnet/dotnet-3.1.201/dotnet | - | - | - |
php | v7.3.32 | /usr/local/lib/python/python-3.7.5/bin/python | - | - | - |
php | v8.0.12 | /usr/local/lib/php/php-8.0.12/bin/php | - | - | - |
gcc | v7.3.32 | /usr/bin/gcc-7 /usr/bin/gcc | - | - | - |
gcc | v8.0.12 | /usr/bin/gcc-8 /usr/bin/gcc | - | - | - |
gcc | v9.4.0 | /usr/bin/gcc-9 /usr/bin/gcc | - | - | - |
gcc | v10.3.0 | /usr/bin/gcc-10 /usr/bin/gcc | - | - | - |
若上述环境无法满足项目所需,如 swift 项目需要在 macOS 环境下运行,可以参考自定义构建节点自行接入装载 macOS 系统的构建节点。
自定义镜像环境
自定义构建环境类型本质上是通过接入已预置相关依赖环境的 Docker 镜像作为构建环境,你可以通过以下方式接入自定义 Docker 镜像环境:
- 项目内 Docker 制品库
- 使用指定 Registry 地址(默认为 Docker Hub) Docker 镜像
- 使用 Dockerfile 脚本构建环境
项目内 Docker 制品库
将团队制品上传至 CODING 制品仓库不仅能够使团队内的资源调用更加便捷,还能够针对制品施行统一的版本管理。本章节以装有进程管理工具 pm2 的 node.js 12 环境为例,分步骤演示如何将自建镜像推送至制品仓库并作为构建环境。
步骤一:构建 Docker 镜像
- 在本地中新建目录,创建 Dockerfile 并填写如下内容:
# 指定 node.js 版本为 node 12,默认从 Docker Hub 上拉取
FROM node:12
# 安装 pm2
RUN npm install pm2 -g
COPY . .
# 设置容器启动时的命令
CMD [ "pm2-runtime", "start" ]
- 运行指令
docker build -t pm2-test .
指定镜像名称;
Step 1/4 : FROM node:12
...
Step 2/4 : RUN npm install pm2 -g
...
Step 3/4 : COPY . .
...
Step 4/4 : CMD [ "pm2-runtime", "start" ]
---> Running in 46cc5081cb4f
Removing intermediate container 46cc5081cb4f
---> 5f8335fa91d4
Successfully built 5f8335fa91d4
Successfully tagged pm2-test:latest
步骤二:推送镜像到制品库
- 进入制品库,选择已有制品库或新建制品库,输入密码后点击“生成个人令牌访问令牌生成配置”。
复制命令后在终端运行,登录至制品库。
按照操作指引提示填写版本号,为本地镜像打标签。
- 在终端运行推送命令,将 Docker 镜像推送至制品库。
docker push ******/test-dd/test/pm2-test
The push refers to repository [******************/test-dd/test/pm2-test]
809e73e276b8: Pushed
9159d4abedcd: Pushed
...
latest: digest: sha256:ccecda5071e60593d1be44ea27d4ec5b35f6a5f6872fb9 size: 2634
推送成功后可以在制品列表找到已推送的镜像。
步骤三:使用镜像作为构建环境
在流水线设置中的“构建环境”中选择“项目内制品仓库 Docker 镜像”作为构建环境。
指定地址的 Docker 镜像
“Docker 镜像地址”为必填项,需要填入完整的镜像 URL 地址。「Registry 地址」需填写的格式为不带路径的 URL 地址,例如:
-
https://codes-farm-docker.pkg.coding.net
✅ -
https://codes-farm-docker.pkg.coding.net/laravel-demo/laravel-docker/
❌
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。