Dockerfile和Docker Compose白名单及替换名单使用说明
匹配规则
基础镜像检查包含白名单trust_list.json和替换名单replaces_list.json,具体匹配规则如下:
- 若基础镜像+版本号在白名单中可以找到,则不提示。
- 若基础镜像在白名单中存在但是版本号不匹配,则查找替换名单。若替换名单中存在,则提示按照替换名单进行修改。
- 若基础镜像在白名单中存在但是版本号不匹配,则查找替换名单。若替换名单中不存在,则提示按照白名单中推荐版本进行修改。
- 若基础镜像+版本号在白名单和替换名单中均不匹配,则提示可能需要修改镜像。
场景示例
以Dockerfile和Docker Compose文件中基础镜像为oraclelinux:6.10、java:8u40-jre为例:
- 源码文件1:oraclelinux在白名单中存在但是版本号不匹配
image: oraclelinux:6.10
- 源码文件2:java:8u40-jre在替换名单中存在
image: java:8u40-jre
操作步骤
- 使用SSH远程登录工具,进入工具部署服务器操作系统命令行界面。
- 白名单配置。
- 打开trust_list.json文件。
1
vi /opt/DevKit/devkitplugins/porting/sysmig/config_parser/config_parser_resources/trust_list.json
“/opt”为DevKit安装目录,请根据实际情况替换。
- 按“i”进入编辑模式,oraclelinux配置如加粗内容所示。
{ "notary": { "arm_version": ["signer-0.7.0", "signer", "server-0.7.0", "server", "signer-0.6.1-2", "server-0.6.1-2"], "recommended_version": "signer" }, "oraclelinux": { "arm_version": ["8.10", "8-slim-fips", "8-slim", "8", "9-slim-fips", "9-slim", "9", "7.9", "7-slim-fips", "7-slim", "7", "8.9", "8.8", "8.7", "8.6", "8.5", "8.4", "8.3", "8.2", "7.8", "7.7", "8.1", "8.0", "7.6"], "recommended_version": "9" }, ... }
- oraclelinux:为基础镜像名称,请根据实际名称进行配置。
- arm_version:表示Arm架构支持的版本,多个以英文逗号分隔。
- recommended_version:表示推荐版本。
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 打开trust_list.json文件。
- 替换名单配置。
- 打开replaces_list.json文件。
1
vi /opt/DevKit/devkitplugins/porting/sysmig/config_parser/config_parser_resources/replaces_list.json
“/opt”为DevKit安装目录,请根据实际情况替换。
- 按“i”进入编辑模式,java:8u40-jre如加粗内容所示。
{ "java:8u40-jre": "openjdk:8-jre", "java:openjdk-8u40-jre": "openjdk:8-jre", "java:8u40": "openjdk:8-jdk", "java:8u40-jdk": "openjdk:8-jdk", ... }
格式为:基础镜像及版本:推荐的基础镜像及版本。
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 打开replaces_list.json文件。
- 扫描文件。
- 基础镜像oraclelinux:6.10:基础镜像oraclelinux在白名单中存在但是版本6.10不在Arm架构支持的版本内,查找替换名单也不存在,则按照白名单中推荐版本,建议将版本号修改为9。
图1 源码文件1
- 基础镜像java:8u40-jre:在白名单中不存在,查看替换名单存在,则根据替换名单提示建议将基础镜像版本号修改为openjdk:8-jre。
图2 源码文件2
- 基础镜像oraclelinux:6.10:基础镜像oraclelinux在白名单中存在但是版本6.10不在Arm架构支持的版本内,查找替换名单也不存在,则按照白名单中推荐版本,建议将版本号修改为9。
父主题: 参考