alx696 / docker-rocksdb-apk

构建关闭SSE4.2支持老CPU的RocksDB的APK安装包

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

说明

alpine的edge分支已经提供了rocksdb包,但是其使用了默认编译,不能在老CPU上运行(不支持SSE4.2)。

此镜像使用RocksDB官方源码,通过编译时设置PORTABLE=1来关闭SSE4.2以支持老CPU,并打包成APK。APK形式的rocksdb体积非常小,是直接编译共享库(so)时的百分之一。

RocksDB的apk包路径为:

  • /rocksdb-dev.apk
  • /rocksdb.apk

RocksDB的APK构建脚本来源RocksDB编译说明,执行$ lscpu查看标记中是否有sse4_2以确认运行环境中的CPU是否支持SSE4.2。


构建镜像

$ docker build -t registry.cn-shanghai.aliyuncs.com/xm69/alpine-rocksdb-apk .

使用apk

在Dockerfile前面增加构建阶段:

FROM registry.cn-shanghai.aliyuncs.com/xm69/alpine-rocksdb-apk AS rocksdb

在Dockerfile打包镜像时复制并安装:

# 安装RocksDB
COPY --from=rocksdb /rocksdb.apk .
RUN set -eux && \
  apk add --update --no-cache --allow-untrusted rocksdb.apk && \
  rm rocksdb.apk

如果是编译Golang应用,应该同时复制安装rocksdb.apk和rocksdb-dev.apk。

About

构建关闭SSE4.2支持老CPU的RocksDB的APK安装包


Languages

Language:Shell 62.7%Language:Dockerfile 37.3%