构建「安全镜像」

Docker 镜像会将 Dockerfile 中每一步结果保存进其 layer ,如果是从源码构建镜像的话会将代码留在镜像中。为了解决这种问题 DaoCloud 推出了「安全镜像」构建功能。

安全镜像构建流程包含三个步骤:代码编译、文件提取、打包镜像。通过分离编译和打包,产生一个安全、精巧、不含源代码的生产级别镜像。

开始构建安全镜像

我们以 DaoCloud/secure-python-sample 这个 repo 为例,首先将该 repo fork 到自己的 github 帐号。

然后在 DaoCloud 镜像构建中创建新的项目(找不到刚刚 fork 的 repo 的话请点击刷新 repo 按钮)。

点击「流程定义」可以看到下图:

因为我们的 repo 中已有 daocloud.yml 文件,所以默认优先使用该文件配置。

我们也可以使用云端设置,这样就不用在代码中加入 daocloud.yml 文件了。

点击右侧云端流程定义。

编辑安全构建任务

每个任务下只能添加一个构建标准镜像和安全镜的任务

我们在「编译步骤」中指定我们用来编译的 Dockerile,然后点击下一步

编译步骤的 Dockerfile 会生成二进制文件/usr/bin/application 。所以在「文件提取」中填写/usr/bin/application 代表我们要提取这个文件。最后我们填写用来打包的 Dockerfile 。下拉点击「展开更多选项」,在「执行条件」下填写master 。在「排除条件」下删除条件。

点击「保存」,点击右上角手动触发选择 master 分支后点击确定

构建完成!我们得到了一个只包含二进制文件的安全镜像!