如何创建带有AWS与Azure扩展的Hawkbit更新服务器Docker镜像
Hawkbit自定义Docker镜像(含S3/Azure存储扩展)
官方镜像说明
Eclipse Hawkbit官方默认的更新服务器Docker镜像不包含AWS S3或Azure Blob存储的扩展依赖,这类存储扩展属于可选功能,需要基于源码构建自定义镜像来集成。
自定义镜像构建步骤(已完成依赖添加与源码构建)
1. 定位构建产物
源码构建完成后,Hawkbit更新服务器的可执行JAR包会生成在hawkbit-runtime/hawkbit-update-server/target/目录下,文件名格式为hawkbit-update-server-${project.version}.jar(${project.version}为你构建时的版本号,例如0.3.0M7)。你可以解压该JAR包,检查BOOT-INF/lib目录,确认其中包含s3和azure相关的扩展依赖JAR。
2. 编写Dockerfile
创建一个新的本地目录,将上述构建好的JAR包复制到该目录,然后在目录内新建Dockerfile,内容如下:
# 选用与Hawkbit兼容的OpenJDK镜像,推荐JDK 11 FROM openjdk:11-jre-slim WORKDIR /app # 复制本地构建的Hawkbit服务JAR到镜像内 COPY hawkbit-update-server-*.jar app.jar # 暴露Hawkbit默认服务端口 EXPOSE 8080 # 启动服务 ENTRYPOINT ["java", "-jar", "/app/app.jar"]
3. 构建Docker镜像
进入存放Dockerfile和JAR包的目录,执行以下命令构建镜像(替换your-image-name和your-tag为自定义的镜像名和版本标签):
docker build -t your-image-name:your-tag .
4. 运行与验证
启动镜像时,需通过环境变量指定存储类型及对应配置参数:
- S3存储示例:
docker run -d \ -p 8080:8080 \ -e hawkbit.artifact.repository.type=s3 \ -e hawkbit.artifact.repository.s3.access-key=你的S3访问密钥 \ -e hawkbit.artifact.repository.s3.secret-key=你的S3密钥 \ -e hawkbit.artifact.repository.s3.bucket=你的S3存储桶名称 \ your-image-name:your-tag
- Azure Blob存储示例:
docker run -d \ -p 8080:8080 \ -e hawkbit.artifact.repository.type=azure \ -e hawkbit.artifact.repository.azure.account-name=你的Azure存储账户名 \ -e hawkbit.artifact.repository.azure.account-key=你的Azure存储密钥 \ -e hawkbit.artifact.repository.azure.container=你的Azure容器名称 \ your-image-name:your-tag
服务启动后,访问http://localhost:8080确认Hawkbit正常运行,上传测试制品验证是否能正确存储到对应云存储服务中。
内容的提问来源于stack exchange,提问作者Amish Shah
相关产品推荐
相关产品推荐

