1#!/usr/bin/env bash 2# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. 3 4set -e 5 6# update Alpine with latest versions 7echo '@edge http://nl.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories 8echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories 9apk update 10apk upgrade 11 12# install CA certificates 13apk add ca-certificates 14 15# install build tools 16apk add \ 17 build-base \ 18 coreutils \ 19 file \ 20 git \ 21 perl \ 22 automake \ 23 autoconf \ 24 cmake 25 26# install tool dependencies for building RocksDB static library 27apk add \ 28 curl \ 29 bash \ 30 wget \ 31 tar \ 32 openssl 33 34# install RocksDB dependencies 35apk add \ 36 snappy snappy-dev \ 37 zlib zlib-dev \ 38 bzip2 bzip2-dev \ 39 lz4 lz4-dev \ 40 zstd zstd-dev \ 41 linux-headers \ 42 jemalloc jemalloc-dev 43 44# install OpenJDK7 45apk add openjdk7 \ 46 && apk add java-cacerts \ 47 && rm /usr/lib/jvm/java-1.7-openjdk/jre/lib/security/cacerts \ 48 && ln -s /etc/ssl/certs/java/cacerts /usr/lib/jvm/java-1.7-openjdk/jre/lib/security/cacerts 49 50# cleanup 51rm -rf /var/cache/apk/* 52 53# puts javac in the PATH 54export JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk 55export PATH=/usr/lib/jvm/java-1.7-openjdk/bin:$PATH 56 57# gflags from source 58cd /tmp &&\ 59 git clone -b v2.0 --single-branch https://github.com/gflags/gflags.git &&\ 60 cd gflags &&\ 61 ./configure --prefix=/usr && make && make install &&\ 62 rm -rf /tmp/* 63 64 65# build rocksdb 66cd /rocksdb 67make jclean clean 68PORTABLE=1 make -j8 rocksdbjavastatic 69cp /rocksdb/java/target/librocksdbjni-* /rocksdb-build 70cp /rocksdb/java/target/rocksdbjni-* /rocksdb-build 71