使用runtime-setup插件初始化运行环境

流水线任务每次运行时,都会基于基础镜像调度一个全新的实例。应用中心会持续维护并更新镜像,添加或者更新用户需要的构建工具。当构建工具存在多个版本时,Serverless Devs会默认使用最新的版本,但并不是所有用户都期望使用最新版本的工具。所以应用中心提供了runtime-setup插件,用于指定默认使用的构建工具版本。本文介绍如何使用runtime-setup插件初始化运行环境。

插件使用

如果期望使用指定版本的构建工具,您需要在使用Serverless Devs前使用runtime-setup插件设置正确的构建工具版本。

在Steps中使用runtime-setup插件

在流水线模板或任务模板中,可以通过执行上下文Steps,使用runtime-setup插件。插件执行完毕后,会将指定版本的构建工具配置到容器中的PATH环境变量中。示例如下。

---
kind: PipelineTemplate
name: mytemplate-<% .git.branch %>
description: cached pipelinetemplate
spec:
  context:
    data:
      envName: test
      deployFile: s.yaml
  tasks:
  # 构建部署
  - name: build-and-deploy
    context:
      data:
        enable: true
        steps:
          # 拉取代码
          - plugin: "@serverless-cd/checkout"
          # 初始化s工具
          - plugin: "@serverless-cd/s-setup"
          # 设置构建工具版本
          - plugin: "@serverless-cd/runtime-setup"
            inputs:
              runtime:
              - nodejs14
              # - nodejs16
            	# - python3.9
              # - python
          # 使用其他插件或脚本,执行任意动作
          # - run: make build && make deploy
          # - plugin: "@serverless-cd/others" 
    taskTemplate: serverless-runner-task
---

runtime-setup插件支持的Runtime列表如下所示。

  • Node.js 12

  • Node.js 14

  • Node.js 16

  • Node.js 18

  • Node.js 20

  • Java 8

  • Java 11

  • Java 17

  • Python 2.7

  • Python 3.6

  • Python 3.7

  • Python 3.9

  • Python 3.10

  • Go 1.18

  • Go 1.19

  • Go 1.20

  • Go 1.21

其中,Node.js 14、Java 8、Python 3.9和Go 1.18为默认版本的Runtime。