全部产品
阿里云办公

构建环境

更新时间:2018-04-24 15:42:35

本文描述云效使用的构建环境。下面会介绍可用的环境,如果您在构建中遇到了问题,可以查看构建环境调试

基础环境

所有构建环境基于Ubuntu系统。

执行构建命令的用户是admin,拥有sudo权限。所以您可以使用sudo apt-get update && sudo apt-get install -y xxx 来安装需要的软件。

已经预装的软件:

  1. g++ 4.9.2
  2. gcc 4.9.2
  3. make 4.0
  4. curl
  5. wget
  6. unzip
  7. python 3.5(不在PATH中,需要使用/usr/alibaba/install/python-3.5.0/bin/python3来引用)
  8. git 1.9

各个语言的环境

通过设置release文件中的code.language的值,您可以使用相应语言、版本的构建环境。

Java环境

基于基础环境,并安装了:

  1. maven 3.5
  2. gradle 4.1

提供三个JDK版本:

  1. oracle-jdk1.7 (code.language=oracle-jdk1.7
  2. oracle-jdk1.8 (code.language=oracle-jdk1.8
  3. oracle-jdk1.9 (code.language=oracle-jdk1.9

NodeJS环境

基于基础环境,并安装了:

  1. yarn 0.27.5
  2. 为了进行node-gyp的编译,该镜像中包含了两个python的版本:
    1. python 2.7,PATH中的python即为该版本。
    2. python 3.5,继承基础环境中的python3.5,使用/usr/alibaba/install/python-3.5.0/bin/python3来引用该版本。

提供三个nodejs版本:

  1. node6.11.3 npm3.10.10 (code.language=node6.x
  2. node7.10.0 npm4.20 (code.language=node7.x
  3. node8.4.0 npm5.3.0 (code.language=node8.x

注意 :上述三个node及npm版本会随着相应的node大版本的更新而更新,但code.language的取值不变。比如您配置了code.language=node6.x,目前实际使用的是node6.11.3,如果node6的版本升级到了6.12.0,则您实际用到的可能就是6.12.0。

PHP环境

基于基础环境,并安装了:

  1. composer 1.0

提供两个php版本:

  1. php5.6 phpunit 5.7(code.language=php5.6
  2. php7.0 phpunit 6.3(code.language=php7.0

Golang环境

基于基础环境,并安装了:

  1. go-wrapper

提供两个golang版本:

  1. go1.8.5 (code.language=golang1.8
  2. go1.9.2(code.language=golang1.9

Python环境

基于基础环境,提供两个python版本:

  1. python2.7.13(code.language=python2.7
  2. python3.5.0 (code.language=python3.5

其它

如果您的构建对环境没有特殊需求,可以使用code.language=scripts。此时会使用基础环境。

构建环境调试

云效使用docker镜像的方式提供构建环境,镜像可以公开下载到,具体的镜像地址可以在构建日志中看到。所以如果您在构建中遇到了问题,可以按照构建日志的提示,将相应的镜像拉取到本地,假设镜像地址为registry.cn-beijing.aliyuncs.com/rdc-builds/php:7.0,则使用下面的命令进行本地调试:

  1. //在宿主机上执行,并进入容器
  2. $ docker exec -ti `docker run -d registry.cn-beijing.aliyuncs.com/rdc-builds/php:7.0` bash
  3. //在容器中切换到admin,因为云效会使用admin账户进行构建
  4. root@eed5d6e8a6bc:/#su admin
  5. // 开始您的调试
  6. 。。。

如果我们的镜像不能满足您的需求,建议使用自定义构建镜像

本文导读目录