自定义IC镜像
参考官方文档:https://bk.tencent.com/docs/markdown/ZH/Devops/3.0/UserGuide/Services/Store/ci-images/docker-build.md
有两种方式:
- Dockerfile 示例 1(以 bkci 默认镜像为基础镜像):
1 2 3
| FROM bkci/ci:latest
RUN yum install -y mysql-devel
|
- Dockerfile 示例 2(不以 bkci 默认镜像为基础镜像时,镜像环境基本要求如下):
1 2 3 4 5 6 7 8 9 10 11
| # ============= bkci基础环境 ================ FROM openjdk:8-jre-slim RUN apt update && apt upgrade && apt autoremove -y RUN apt install -y curl wget RUN wget -q https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk16/1.46/bcprov-jdk16-1.46.jar -O $JAVA_HOME/lib/ext/bcprov-jdk16-1.46.jar RUN ln -sf $JAVA_HOME /usr/local/jre
# ============= 自定义环境 ================ # RUN whatever you want RUN apt install -y git python-pip
|
重要提示:
- 因为流水线里的容器是通过 CMD,使用/bin/sh 启动的,因此必须保证镜像里面存在/bin/sh 以及 curl 命令(用来下载 Agent)
- 不要设置 ENTRYPOINT
- 确保为 64 位镜像
- 用户用 root,如需普通用户可以在 bash 里面切换,否则流水线任务启动不了
- 流水线插件有可能使用 python 或 nodejs 开发,建议准备好插件执行环境:
Python 插件执行环境
NodeJS 插件执行环境
构建kaniko bkci镜像
编写Dockerfile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| # 第一阶段:获取 kaniko 执行器 FROM m.daocloud.io/gcr.io/kaniko-project/executor:latest as kaniko
# 第二阶段:使用 BKCI 官方基础镜像 FROM bkci/ci:latest
MAINTAINER huari "qiqiuyang@papegames.net"
# 从 kaniko 阶段复制必要文件(不包含用户特定的配置文件) COPY --from=kaniko /kaniko /kaniko RUN chmod +x /kaniko/executor
RUN apt install -y git python-pip python3-pip \ && pip config set global.index-url https://mirrors.aliyun.com/pypi/simple \ && pip config set install.trusted-host mirrors.aliyun.com
# 设置环境变量 ENV PATH $PATH:/kaniko ENV DOCKER_CONFIG /kaniko/.docker ENV SSL_CERT_DIR /kaniko/ssl/certs
# 验证 kaniko 可执行文件(不验证配置) RUN /kaniko/executor version
|
执行bkci镜像构建流水线

发布容器镜像
参考官方文档:https://bk.tencent.com/docs/markdown/ZH/Devops/3.0/UserGuide/Services/Store/ci-images/release-new-image.md