sonic-buildimage 编译怎么使用SONIC_DOCKER_IMAGES,举个例子
时间: 2024-02-18 08:59:23 浏览: 184
使用SONIC_DOCKER_IMAGES变量来指定构建SONiC时所需的Docker镜像非常简单。下面是一个例子:
假设你需要在SONiC中使用Redis数据库,可以按照以下步骤进行操作:
1. 打开sonic-buildimage目录下的Makefile文件。
2. 找到以下行:
```
SONIC_DOCKER_IMAGES ?= $(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-common:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-$(IMAGE_NAME_SUFFIX):$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-syncd:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-snmp:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-database:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-swss:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-fpm:$(DOCKER_TAG)
```
3. 在这一行的末尾添加Redis镜像的名称和版本号,以空格分隔,例如:
```
SONIC_DOCKER_IMAGES ?= $(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-common:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-$(IMAGE_NAME_SUFFIX):$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-syncd:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-snmp:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-database:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-swss:$(DOCKER_TAG) \
$(DOCKER_REGISTRY)/$(DOCKER_NS)/$(IMAGE_NAME_BASE)-fpm:$(DOCKER_TAG) \
redis:5.0.8
```
这将告诉构建系统在构建SONiC时使用Redis 5.0.8镜像。
4. 保存文件并退出。
5. 运行make命令以开始构建SONiC,例如:
```
make all
```
在构建过程中,Redis镜像将被下载并用于构建SONiC镜像。完成构建后,你可以使用Docker命令来启动Redis容器。
阅读全文