FROM golang:1.14-stretch
RUN apt-get update && apt-get install -y \
build-essential git wget pkg-config libzmq3-dev libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev
RUN git clone --depth 1 https://github.com/facebook/rocksdb.git /rocksdb; \
cd /rocksdb; CFLAGS=-fPIC CXXFLAGS=-fPIC make release
RUN git clone --depth 1 https://github.com/nbcorg/blockbook.git /blockbook; \
cd /blockbook; CGO_CFLAGS="-I/rocksdb/include" CGO_LDFLAGS="-L/rocksdb -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4" go build
go: downloading github.com/juju/errors v0.0.0-20170703010042-c7d06af17c68
go: downloading github.com/bsm/go-vlq v0.0.0-20150828105119-ec6e8d4f5f4e
go: downloading github.com/nbcorg/btcutil v0.0.0-20201106055106-dcdcc4d0007a
go: downloading github.com/prometheus/client_golang v1.1.0
go: downloading github.com/pebbe/zmq4 v1.0.0
go: downloading github.com/nbcorg/btcd v0.0.0-20200622133330-8ba93b4a5029
go: downloading github.com/tecbot/gorocksdb v0.0.0-20180907100951-214b6b7bc0f0
go: downloading github.com/prometheus/common v0.9.1
go: downloading github.com/gobuffalo/packr v1.13.7
go: downloading github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f
go: downloading github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
go: downloading github.com/beorn7/perks v1.0.1
go: downloading golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897
go: downloading github.com/martinboehm/golang-socketio v0.0.0-20180414165752-f60b0a8befde
go: downloading github.com/prometheus/client_model v0.2.0
go: downloading github.com/golang/protobuf v1.3.2
go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.1
go: downloading github.com/prometheus/procfs v0.0.10
go: downloading github.com/gogo/protobuf v1.1.1
go: downloading github.com/pkg/errors v0.8.1
go: downloading github.com/gorilla/websocket v1.4.2
# github.com/tecbot/gorocksdb
/rocksdb/librocksdb.a(env_posix.o): In function `rocksdb::(anonymous namespace)::PosixDynamicLibrary::~PosixDynamicLibrary()':
/rocksdb/env/env_posix.cc:103: undefined reference to `dlclose'
/rocksdb/librocksdb.a(env_posix.o): In function `~PosixDynamicLibrary':
/rocksdb/env/env_posix.cc:103: undefined reference to `dlclose'
/rocksdb/env/env_posix.cc:103: undefined reference to `dlclose'
/rocksdb/librocksdb.a(env_posix.o): In function `rocksdb::(anonymous namespace)::PosixDynamicLibrary::LoadSymbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void**)':
/rocksdb/env/env_posix.cc:107: undefined reference to `dlerror'
/rocksdb/env/env_posix.cc:108: undefined reference to `dlsym'
/rocksdb/env/env_posix.cc:112: undefined reference to `dlerror'
/rocksdb/librocksdb.a(env_posix.o): In function `rocksdb::(anonymous namespace)::PosixEnv::LoadLibrary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<rocksdb::DynamicLibrary>*)':
/rocksdb/env/env_posix.cc:168: undefined reference to `dlopen'
/rocksdb/env/env_posix.cc:206: undefined reference to `dlerror'
/rocksdb/env/env_posix.cc:185: undefined reference to `dlopen'
/rocksdb/env/env_posix.cc:196: undefined reference to `dlopen'
collect2: error: ld returned 1 exit status
This attempt failed to
go build: