This has customized docker images for Ruby based on rake-compiler-dock. gRPC needs four docker images to build Ruby artifacts;
The linux docker images of rake-compiler-dock
are based on Ubuntu, which is enough for most cases but it becomes hard to keep it compataible for some conservative Linux distrubitions such as CentOS 6 because Ubuntu uses more modern libraries than them. As a result, generated artifacts sometimes cannot run on CentOS 6 due to missing dependencies. This can be easily addressed by using CentOS 6 based docker images such as dockcross manylinux2010, which was invented to handle the very same problem of Python. By using the same solution, Ruby can have the simple way of building more portable artifacts. This idea is summarized in rake-compiler-dock#33.
These two new docker images; rake_x64-linux
and rake_x86_64-linux
are based on Dockerfile.mri.erb with following customizations;
ubuntu:16.04
to dockcross/manylinux2010
manylinux2010
(mainly due to the limit of gosu
handling groups)manylinux2010-x86
already did it. (like cross compilers for x86 and mk_i686)manylinux2010
doesn't needit.patchelf_gem.sh
to trim the unnecessary dependency of libcrypt.so.2
. Without this, artifacts for Ruby 2.3 to 2.5 happens to have a libcrypt.so.2
link although it doesn't have any external symbols from it.Windows docker images are almost identical to rake-compiler-dock
but with some exception;
gettimeofday
to rb_gettimeofday
in win32.h