座舱申请编译服务器使用指南

人员信息表:构建人员信息

一、申请使用服务器权限

申请服务器权限地址:https://cloud.mioffice.cn/next/console/iam/permissionApply

  • 用户名:默认
  • 节点树:xiaomi.car.sc.build.devbuilder
  • 权限角色:职能类/Developer
  • 申请理由:“根据实际需要写”

二、登陆服务器

#1、登陆服务器 ssh 你的用户名@relay.xiaomi.com 例如ssh v-wuyuhao@relay.xiaomi.com
ssh 自己的公司邮箱前缀@relay.xiaomi.com
#2、使用小米人进行扫码登陆
#3、选择登陆的服务器之后回车
m1-car-sc-build-devbuilder01.bj.idc.xiaomi.com、m1-car-sc-build-devbuilder02.bj.idc.xiaomi.com
m1-car-sc-build-devbuilder03.bj.idc.xiaomi.com 、m1-car-sc-build-devbuilder04.bj.idc.xiaomi.com

如果不知到自己可以使用哪台服务器可以看一下人员名单 构建人员信息

  1. ssh登陆堡垒机进行跳转

  1. 输入登陆所在的服务器之后回车:

  1. 登录成功

三、编译服务使用指南

  1. 申请完服务器权限,需要联系 @吴玉昊 配置用户环境(否则用户没有家目录、docker使用权限)

  2. 配置ssh相关密钥对(座舱研发——工程指南(总入口文档)

  3. 下载代码

  4. 使用docker构建环境

    • DCD: 直接复制命令并执行脚本

      # 在容器第一次启动时将以下参数传入,镜像会调用脚本创建对应账户,创建的账户和buildmc使用相同的$HOME所以不用担心权限问题。
      # -i 选项代表 用户uid
      # -u 选项代表 用户名称
      docker rm -f $(whoami)_watt > dev/null | true
      docker run \
      --network=host \
      --privileged \
      --rm \
      --name $(whoami)_watt \
      -v $HOME:/home/buildmc \
      -it \
      micr.cloud.mioffice.cn/micar-build-ci/8295_ubuntu1804:user \
      -i $(id -u) -u docker
    • XCD: 下载构建脚本并执行

      wget https://cnbj1-inner-fds.api.xiaomi.net/repos/tools/docker_run.sh
      bash docker_run.sh
  5. 执行构建命令进入项目目录,根据不同项目执行不同命令

  6. 其他

四、注意事项

1、服务器用户id和镜像id不一致问题

Docker 镜像:micr.cloud.mioffice.cn/micar-build-ci/8295_ubuntu1804:user

解决办法:docker镜像新增一个启动脚本,在第一次启动容器时,将服务器用户信息以参数的形式传入,镜像会调用脚本创建对应账户,所创建的账户和buildmc使用相同的$HOME所以不用担心权限问题。

如果没有传入参数,则会使用默认用户buildmc

镜像使用方法:

# 在容器第一次启动时将以下参数传入,镜像会调用脚本创建对应账户,创建的账户和buildmc使用相同的$HOME所以不用担心权限问题。
# -i 选项代表 用户uid
# -u 选项代表 用户名称
docker rm -f $(whoami) | true
docker run \
--network=host \
--privileged \
--rm \
--name $(whoami) \
-v $HOME:/home/buildmc \
-it \
micr.cloud.mioffice.cn/micar-build-ci/8295_ubuntu1804:user \
-i $(id -u) -u docker

2、maven无法下载依赖

[Artifactory]Maven用户配置手册

3、用户uid 无法查到正在定位(已解决)

初步判断,信息不同步导致,具体如何同步

问题所在:用户登录不是使用本机的用户管理系统,会有同步延迟大概2~3会同步至本机。