---
title: Dockerfile和Docker Compose白名单及替换名单使用说明
description: "基础镜像检查包含白名单trust_list.json和替换名单replaces_list.json，具体匹配规则如下："
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/sourcecodeporting/DevKit_Porting_0063.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/sourcecodeporting/DevKit_Porting_0063.html
indexId: 46459e7caa156c47bed3a020d498d6334fc461ed2c3b2a08cb4df5be0e86f86a81
---
# Dockerfile和Docker Compose白名单及替换名单使用说明

#### 匹配规则

基础镜像检查包含白名单trust_list.json和替换名单replaces_list.json，具体匹配规则如下：

- 若基础镜像+版本号在白名单中可以找到，则不提示。
- 若基础镜像在白名单中存在但是版本号不匹配，则查找替换名单。若替换名单中存在，则提示按照替换名单进行修改。
- 若基础镜像在白名单中存在但是版本号不匹配，则查找替换名单。若替换名单中不存在，则提示按照白名单中推荐版本进行修改。
- 若基础镜像+版本号在白名单和替换名单中均不匹配，则提示可能需要修改镜像。
  对于白名单和替换名单中均不匹配的基础镜像，用户可参考操作步骤中配置文件示例进行配置，配置完成后重新扫描Dockerfile和Docker Compose文件。


#### 场景示例

以Dockerfile和Docker Compose文件中基础镜像为oraclelinux:6.10、java:8u40-jre为例：

- 源码文件1：oraclelinux在白名单中存在但是版本号不匹配

```
image: oraclelinux:6.10
```


- 源码文件2：java:8u40-jre在替换名单中存在

```
image: java:8u40-jre
```


#### 操作步骤

1. 使用SSH远程登录工具，进入工具部署服务器操作系统命令行界面。
2. 白名单配置。

  a. 打开trust_list.json文件。
    1 vi /opt/DevKit/devkitplugins/porting/config/sysmig/config_parser_resources/trust_list.json

    “/opt”为DevKit安装目录，请根据实际情况替换。

  b. 按“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：表示推荐版本。

  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
3. 替换名单配置。

  a. 打开replaces_list.json文件。
    1 vi /opt/DevKit/devkitplugins/porting/config/sysmig/config_parser_resources/replaces_list.json

    “/opt”为DevKit安装目录，请根据实际情况替换。

  b. 按“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",
...
}
```


    格式为：基础镜像及版本:推荐的基础镜像及版本。

  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
4. 扫描文件。

  - 基础镜像oraclelinux:6.10：基础镜像oraclelinux在白名单中存在但是版本6.10不在Arm架构支持的版本内，查找替换名单也不存在，则按照白名单中推荐版本，建议将版本号修改为9。
    图1 源码文件1

  - 基础镜像java:8u40-jre：在白名单中不存在，查看替换名单存在，则根据替换名单提示建议将基础镜像版本号修改为openjdk:8-jre。
    图2 源码文件2
