opennms/build-env该容器用于从源代码编译和组装OpenNMS,主要适用于RHEL或CentOS系统的OpenNMS分发。环境基于官方原生CentOS 7构建,采用Docker多阶段构建,因此需要Docker的Edge版本。由于Ubuntu或CentOS中的Docker版本过旧,请参考Docker安装说明进行安装,最终将获得可直接运行的容器镜像。建议使用Docker Compose来描述服务栈,最小化服务栈需包含PostgreSQL和OpenNMS容器镜像。
编译和安装通过以下阶段实现:
为尽可能减少依赖并简化向其他基础镜像的迁移,安装过程采用与发行版无关的机制,仅将组装好的OpenNMS提取到/opt/opennms。在构建过程中,已移除对Perl和其他Bash脚本的依赖,并执行原生Maven命令,使整个构建过程更加透明。
编译和组装OpenNMS,默认使用官方OpenNMS GitHub仓库并检出develop分支:
docker build -t myopennms [***]
GitHub仓库中提供了示例docker-compose.yml文件,可用于构建和运行服务栈。
提示:请确保docker-compose.yml文件中使用的镜像名称与通过-t myopennms指定的名称一致。
运行OpenNMS:
docker-compose up -d
可使用--build-arg myarg=value指定以下构建参数以覆盖默认行为。
示例:通过设置构建参数编译名为jira/NMS-9328的特定OpenNMS分支,并将容器镜像名称设为该问题编号:
docker build \ -t nms-9328 \ [***] \ --build-arg OPENNMS_GIT_BRANCH_REF=jira/NMS-9328
| 参数 | 默认值 | 描述 |
|---|---|---|
| JAVA_VERSION | 1.8.0 | OpenJDK主版本 |
| JAVA_VERSION_DETAIL | 1.8.0.144 | OpenJDK RPM包中使用的版本号 |
| MAVEN_VERSION | 3.5.0 | Apache Maven版本号 |
| MAVEN_URL | [***] | Apache Maven包的服务器URL |
| MAVEN_PKG | ${MAVEN_URL}/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz | Maven二进制包URL |
| MAVEN_PROXY_URL | 未设置,使用OpenNMS提供的Maven仓库 | 替代的Maven代理服务器,例如JFrog:http://<jfrog-ip>:8081/artifactory/remote-repos/ |
| NSIS_RPM_URL | [***] | NSIS包的URL |
| JICMP_GIT_REPO_URL | [***] | JICMP的Git仓库URL |
| JICMP_GIT_BRANCH_REF | jicmp-2.0.4-1 | JICMP的标签或分支 |
| JICMP_SRC | /usr/src/jicmp | JICMP的源代码目录 |
| JICMP6_GIT_REPO_URL | [***] | JICMP6的Git仓库URL |
| JICMP6_GIT_BRANCH_REF | jicmp6-2.0.3-1 | JICMP6的标签或分支 |
| JICMP6_SRC | /usr/src/jicmp6 | JICMP6的源代码目录 |
| JRRD2_GIT_REPO_URL | [***] | JRRD2的Git仓库URL |
| JRRD2_GIT_BRANCH_REF | 2.0.4 | JRRD2的标签或分支 |
| JRRD2_SRC | /usr/src/jrrd2 | JRRD2的源代码目录 |
| OPENNMS_SRC | /usr/src/opennms | OpenNMS的源代码目录 |
| OPENNMS_HOME | /opt/opennms | OpenNMS的目标安装目录 |
| MAVEN_OPTS | "-XX:MaxHeapSize=2G -XX:ReservedCodeCacheSize=512m -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:-UseGCOverheadLimit -XX:+UseParallelGC -XX:+UseParallelOldGC" | 用于从源代码编译和组装OpenNMS的默认Maven选项 |
| OPENNMS_GIT_REPO_URL | [***] | OpenNMS的Git仓库URL |
| OPENNMS_GIT_BRANCH_REF | develop | OpenNMS的标签或分支 |
| BUILD_OPTIONS | "-q -DskipTests" | 用于编译和组装的自定义Maven选项 |
Ronny Trommer
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务