OpenAirInterface通过docker build方式构建images

news2024/11/15 9:19:46

本文主要讲解如何通过build方式构建各个网元的image,因为直接pull的image无法对其进行更改,而build的镜像可以对其源代码进行编辑更改后生成镜像。

参考链接:OAI build iamges

1.获取正确的网络功能分支

此存储库仅包含教程和持续集成脚本。
每个 5G 网络功能源代码都在自己的存储库中进行管理。
它们在文件夹中命名。git sub-modulescomponent
在做任何事情之前,你应该检索每个 git 子模块的代码

总之,就是你要选对要clone的分支,你使用那一个分支的内容,必须在克隆时输入正确的分支

1.1克隆稳定版本

我们建议与所有 git 子模块上的主分支同步。
我们还建议您将此“教程”存储库与提供的标记同步。这样,文件将与每个 cNF .docker-compose保持一致。

在撰写本文时(19/01/2023),发布标签为 v1.5.0。
在这里插入图片描述

# Clone directly on the v1.5.0 release tag
#通过修改 v1.5.0到其他分支名,可以下载其他分支的文件
$ git clone --branch v1.5.0 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git       
$ cd oai-cn5g-fed
# If you forgot to clone directly to the v1.5.0 release tag
$ git checkout -f v1.5.0

# Synchronize all git submodules
$ ./scripts/syncComponents.sh
---------------------------------------------------------
OAI-NRF     component branch : master
OAI-AMF     component branch : master
OAI-SMF     component branch : master
OAI-SPGW-U  component branch : master
OAI-AUSF    component branch : master
OAI-UDM     component branch : master
OAI-UDR     component branch : master
OAI-UPF-VPP component branch : master
OAI-NSSF    component branch : master
OAI-NEF     component branch : master
OAI-PCF     component branch : master
---------------------------------------------------------
git submodule deinit --all --force
git submodule init
git submodule update

1.2如果你对最新版本感兴趣

所有最新功能都推送到每个 NF 存储库的分支。develop
这意味着我们/您能够构建并且持续集成测试套件确保它
不会破坏任何现有的测试功能。
例如,在撰写本文时,N2 切换支持代码包含在发行版中。
但它尚未经过测试。因此,它没有在发行说明中公布。v1.1.0CHANGELOG.md
无论如何,教程在存储库分支的最新提交上的 docker-compose 文件应支持任何其他未经测试的功能。master oai-cn5g-fed

# Clone
$ git clone  https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git
$ cd oai-cn5g-fed
# On an existing repository, resync to the last `master` commit
$ git fetch --prune
$ git checkout master
$ git rebase origin/master

# Synchronize all git submodules
$ ./scripts/syncComponents.sh --nrf-branch develop --amf-branch develop \
                              --smf-branch develop --spgwu-tiny-branch develop \
                              --ausf-branch develop --udm-branch develop \
                              --udr-branch develop --upf-vpp-branch develop \
                              --nssf-branch develop --nef-branch develop \
                              --pcf-branch develop
---------------------------------------------------------
OAI-NRF     component branch : develop
OAI-AMF     component branch : develop
OAI-SMF     component branch : develop
OAI-SPGW-U  component branch : develop
OAI-AUSF    component branch : develop
OAI-UDM     component branch : develop
OAI-UDR     component branch : develop
OAI-UPF-VPP component branch : develop
OAI-NSSF    component branch : develop
OAI-NEF     component branch : develop
OAI-PCF     component branch : develop
---------------------------------------------------------
git submodule deinit --all --force
git submodule init
git submodule update

2.通用参数

如果要重新生成 CN5G 镜像,请注意或可能重复使用 blob
以构建中间层。docker podman cached
在这种情况下,我们建议添加该选项。--no-cache

2.1在Ubuntu主机上

支持如下版本:

  1. Ubuntu or 18.04bionic
  2. Ubuntu or 20.04focal
  3. Ubuntu or 22.04jammy

在构建镜像时,可以指定工作于哪一个基础镜像(默认是ubuntu:bionic)只需要增加此选项:--build-arg BASE_IMAGE=ubuntu:xxxx

3.构建AMF镜像

3.1 在Ubuntu主机上

此例中我构建使用了一个基础镜像:ubuntu:focal

$ docker build --target oai-amf --tag oai-amf:v1.5.0 \
               --file component/oai-amf/docker/Dockerfile.amf.ubuntu \
               --build-arg BASE_IMAGE=ubuntu:focal \
               component/oai-amf
$ docker image prune --force
$ docker image ls
oai-amf                 v1.5.0             f478bafd7a06        1 minute ago          179MB
...

4.构建SMF镜像

4.1 在一个Ubuntu主机上

此例中我构建使用了一个基础镜像:ubuntu:22.04

$ docker build --target oai-smf --tag oai-smf:v1.5.0 \
               --file component/oai-smf/docker/Dockerfile.smf.ubuntu \
               --build-arg BASE_IMAGE=ubuntu:22.04 \
               component/oai-smf
$ docker image prune --force
$ docker image ls
oai-smf                 v1.5.0             f478bafd7a06        1 minute ago          193MB
...

5.构建AMF镜像

5.1 在一个Ubuntu主机上

此例中我构建使用了一个基础镜像:ubuntu:jammy

$ docker build --target oai-nrf --tag oai-nrf:v1.5.0 \
               --file component/oai-nrf/docker/Dockerfile.nrf.ubuntu \
               --build-arg BASE_IMAGE=ubuntu:jammy \
               component/oai-nrf
$ docker image prune --force
$ docker image ls
oai-nrf                 v1.5.0             04334b29e103        1 minute ago          247MB
...

6.构建SPGW-U 镜像

6.1 在一个Ubuntu主机上

注意:SPGWU无法基于 ubuntu:22.04或ubuntu:jammy版本构建,只能使用bionic或focal
此例中我构建使用了一个基础镜像:ubuntu:20.04

$ docker build --target oai-spgwu-tiny --tag oai-spgwu-tiny:v1.5.0 \
               --file component/oai-upf-equivalent/docker/Dockerfile.ubuntu \
               --build-arg BASE_IMAGE=ubuntu:20.04 \
               component/oai-upf-equivalent
$ docker image prune --force
$ docker image ls
oai-spgwu-tiny          v1.5.0             dec6311cef3b        1 minute ago          155MB
...

7.构建AUSF镜像

7.1 在一个Ubuntu主机上

$ docker build --target oai-ausf --tag oai-ausf:v1.5.0 \
               --file component/oai-ausf/docker/Dockerfile.ausf.ubuntu \
               component/oai-ausf
$ docker image prune --force
$ docker image ls
oai-ausf          v1.5.0              77a96de94c23        1 minute ago        231MB
...

8.构建UDM镜像

8.1 在一个Ubuntu主机上

$ docker build --target oai-udm --tag oai-udm:v1.5.0 \
               --file component/oai-udm/docker/Dockerfile.udm.ubuntu \
               component/oai-udm
$ docker image prune --force
$ docker image ls
oai-udm                 v1.5.0             10a4334e31be        1 minute ago          229MB
...

9.构建UDR镜像

9.1 在一个Ubuntu主机上

$ docker build --target oai-udr --tag oai-udr:v1.5.0 \
               --file component/oai-udr/docker/Dockerfile.udr.ubuntu \
               component/oai-udr
$ docker image prune --force
$ docker image ls
oai-udr                 v1.5.0             581e07d59ec3        1 minute ago          234MB
...

10.构建UPF-VPP镜像

10.1 在一个Ubuntu主机上

$ docker build --target oai-upf-vpp --tag oai-upf-vpp:v1.5.0 \
               --file component/oai-upf-vpp/docker/Dockerfile.upf-vpp.ubuntu \
               component/oai-upf-vpp
$ docker image prune --force
$ docker image ls
oai-upf-vpp             v1.5.0             581e07d59ec3        1 minute ago          937MB
...

11.构建NSSF 镜像

3.1 在一个Ubuntu主机上

$ docker build --target oai-nssf --tag oai-nssf:v1.5.0 \
               --file component/oai-nssf/docker/Dockerfile.nssf.ubuntu \
               component/oai-nssf
$ docker image prune --force
$ docker image ls
oai-nssf          v1.5.0              77a96de94c23        1 minute ago        231MB
...

OpenAirInterface通过docker build方式构建amf images


$ docker build --target oai-amf --tag oai-amf:v1.5.0 \
               --file component/oai-amf/docker/Dockerfile.amf.ubuntu \
               --build-arg BASE_IMAGE=ubuntu:focal \
               component/oai-amf
$ docker image prune --force
$ docker image ls
oai-amf                 v1.5.0             f478bafd7a06        1 minute ago          179MB
...

这是一个Docker命令,使用特定的Dockerfile构建OpenAirInterface(OAI)Access和Mobility Management Function(AMF)组件的Docker镜像,并为镜像打上版本号的标签。

以下是命令的不同部分的解释:

  1. docker build:这是构建Docker镜像的命令。
  2. –target oai-amf:这指定只构建Dockerfile中的oai-amf阶段。一个Dockerfile可以定义多个阶段,每个阶段都有自己的指令集。
  3. –tag oai-amf:v1.5.0:这设置正在构建的镜像的名称和版本号。在这种情况下,镜像将被命名为oai-amf,版本号为v1.5.0。
  4. –file component/oai-amf/docker/Dockerfile.amf.ubuntu:这指定要用于构建镜像的Dockerfile的路径。在这种情况下,文件位于component/oai-amf/docker/Dockerfile.amf.ubuntu。
    –build-arg BASE_IMAGE=ubuntu:focal:这指定将传递给Dockerfile的构建参数。在这种情况下,参数是BASE_IMAGE,其值为ubuntu:focal。这允许Dockerfile引用此参数并在构建过程中使用它。
  5. component/oai-amf:这指定构建上下文,即包含在构建过程中使用的文件的目录。在这种情况下,目录是component/oai-amf。

总的来说,这个命令使用特定的Dockerfile构建OAI AMF组件的Docker镜像,并为镜像打上版本号的标签。然后可以使用生成的镜像在Docker容器中运行AMF组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有假币与求正数数组的最小不可组成和

一、编程题 1.有假币 链接:有假币__牛客网 (nowcoder.com) 居然有假币! 现在猪肉涨了,但是农民的工资却不见涨啊,没钱怎么买猪肉啊。nowcoder这就去买猪肉,结果找来的零钱中有假币!!&#xff…

爪哇项目maven项目的打包方式

大家好 ~ 前言 现在都是使用idea中maven插件来打包项目,出现了很多问题很多类或者方法、依赖没有打入到包中,发生了很多问题,因此此文章将基于idea中的maven插件打包。 概念 打包分为小包和大包两种概念: 小包:只打…

Conda虚拟环境的复制和迁移

Conda虚拟环境的复制和迁移 在本机复制Conda虚拟环境 conda create --name snapshot --clone myenv相同操作系统之间复制环境 方法一:requirements.txt 这个方法不推荐,因为只会导出你使用pip安装的依赖包,不会导出虚拟环境所依赖的包&am…

SQL应用题分析

SQL应用题的一般考点: 基本表的查询(单表、多表、嵌入、分组、排序)、向表中插入数据、更新数据、建立视图 关系代数替换sql,使用关系代数来进行查询 基本上就这几点 SQL基本表的插入、更新和建立视图都是死板的,只…

前端开发:CSS中@import指令详解

前言 在前端开发过程中,关于CSS的使用也是非常的,尤其是样式相关的设置等操作。作为前端开发者关于import指令都会有所了解,尤其是在导入CSS样式的时候会用到,但是刚入行不久的前端开发者对应import指令会有所陌生。那么本文就来分…

项目管理:我该怎么安排下属的工作

在刚开始做项目经理的时候,分配任务时会局限于这样的心理:以前我们都是平级的同事,现在我比他们高一个级别了,我说的话他们会不会听啊。 在这个阶段,大部分项目经理都缺乏自信,觉得在项目成员心中威望不足…

Linux shell编程 条件语句if case

条件测试 test命令 测试表达式是否成立,若成立返回0,否则返回其他数值 格式1: test 条件表达式 格式2: [ 条件表达式 ]文件测试 [ 操作符 文件或者目录 ][ -e 1.txt ]#查看1.txt是否存在,存在返回0 echo $? #查看是上一步命令执行结果 0成…

15天学习MySQL计划-存储过程变量判断循环游标函数触发器(进阶篇)-第九天

15天学习MySQL计划-存储过程/变量/判断/循环/游标/函数/触发器(进阶篇)-第九天 存储过程 1.介绍 ​ 存储过程是事先经过编译并存储是数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库…

SR常用数据集介绍

1.Download Link: 1.DIV2K: DIV2K Dataset 2.Set5:【实践与问题解决28】最全超分辨率(SR)数据集介绍以及多方法下载链接_超分辨率数据集_呆呆象呆呆的博客-CSDN博客 3.Set14:【实践与问题解决28】最全超分辨率(SR)数…

Java --- springboot2的静态资源配置原理

目录 一、静态资源配置原理 1.1、配置类只有一个有参构造器 1.2、资源处理的默认规则 1.3、欢迎页的处理规则 一、静态资源配置原理 springboot启动默认加载xxxAutoConfiguration(自动配置) springmvc功能的自动配置类,生效 Configuration(proxyBeanMethods …

Find My资讯|苹果iOS 17将增强Health应用、引入情绪追踪器

彭博社的马克・古尔曼表示,苹果计划在 iOS / iPadOS 17 系统中,为 iPhone / iPad 用户引入几项和健康相关的新功能。其中最值得关注的一款新应用,可以追踪用户的情绪。 苹果计划进一步增强 Health 应用,引入视力状况相关的功能。…

Python小姿势 - # Python网络爬虫之如何通过selenium模拟浏览器登录微博

Python网络爬虫之如何通过selenium模拟浏览器登录微博 微博登录接口很混乱,需要我们通过selenium来模拟浏览器登录。 首先我们需要安装selenium,通过pip安装: pip install selenium 然后我们需要下载一个浏览器驱动,推荐使用Ch…

【翻译一下官方文档】认识uniCloud云数据库(基础篇)

我将用图文的形式,把市面上优质的课程加以自己的理解,详细的把:创建一个uniCloud的应用,其中的每一步记录出来,方便大家写项目中,做到哪一步不会了,可以轻松翻看文章进行查阅。(此文…

虹科活动丨2023第十三届药品质量安全大会精彩回顾

由中国社会科学院食品药品产业发展与监管研究中心、北京中培科检信息技术中心联合主办的2023第十三届(春季)全国药品质量安全大会暨展览会圆满结束,会上众多优秀企业齐聚一堂,分享独家产品,交流行业知识。 在生物科学…

vCenter(PSC)正常更改或重置administrator@vsphere.local用户的密码方法

1. 正常更改administratorvsphere.local用户密码 在vCenter界面中选择“菜单”下的“系统管理”,如下图所示: 然后在Single Sign On下的用户和组中,选择“vsphere.local”域,再对Administrator用户进行编辑,即可进行…

一图看懂 certifi 模块:证书路径, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 certifi 模块:证书路径, 资料整理笔记(大全) 摘要模块图及类关系图类关系图模块全展开【certifi】统计常量模块1 certifi.core 函数2 co…

【c语言】详解宏定义#define 各种使用方法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

vue+Nodejs+Koa搭建前后端系统(三)--koa-generator项目优化修改

前言 计算机系统为Windows 10 专业版 修改package.json配置 原package.json文件中scripts字段的配置字段为&#xff1a; 在终端运行 npm run dev可能会报错 ‘.’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 解决方法就是修改package.json文件中dev…

Apache Zeppelin系列教程第一篇——安装和使用

一、Apache Zeppelin 介绍 Apache Zeppelin是一种开源的Web笔记本类型交互式数据分析工具&#xff0c;它提供了基于浏览器的界面&#xff0c;允许数据工程师和科学家通过各种语言和工具&#xff0c;如Scala, Python, SQL, R,等等&#xff0c;交互式地进行数据分析、可视化以及…

Word控件Spire.Doc 【脚注】字体(2): 在C#, VB.NET中设置Word字体

Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…