I'm trying to setup a continuous integration environment on my CoreOS machine (949.0.0 alpha). I'd like my CI agents which run in docker to be able to build other docker images. How can I achieve this? Right now, for example, I'm trying to achieve this by:
docker run --name tcagent -v $(which docker):/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -dt -p 9090:9090 quay.io/measur3d/tcagent However docker is complaining about not being able to find libsystemd.so.0 and other libraries. On other host OSes docker seems to be statically compiled but on CoreOS the libraries are dynamically loaded. I've checked all the referenced libraries via ldd:
$ ldd /usr/bin/docker
linux-vdso.so.1 (0x00007ffce7491000)
libsystemd.so.0 => /lib64/libsystemd.so.0 (0x00007f5f7caf0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5f7c740000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5f7c53c000)
libdevmapper.so.1.02 => /lib64/libdevmapper.so.1.02 (0x00007f5f7c2ee000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5f7bf43000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f5f7bd1d000)
librt.so.1 => /lib64/librt.so.1 (0x00007f5f7bb15000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5f7b811000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f5f7b5f8000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f5f7b3d2000)
libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x00007f5f7b0e4000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007f5f7aedf000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f5f7acd9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5f7c95d000)
libudev.so.1 => /lib64/libudev.so.1 (0x00007f5f7cacb000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f5f7aa94000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f5f7a88e000)
Short of binding all these libraries and the symlink from host into the container, is there another way to do this? I tried simply host volume mounting /usr/lib64/ into the container but then I got some other errors:
$ docker run --name tcagent -v $(which docker):/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -e LD_LIBRARY_PATH="/usr/lib64" -v /usr/lib64:/usr/lib64 -it -p 9090:9090 quay.io/measur3d/tcagent Error relocating /usr/lib64/libreadline.so.6: __snprintf_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __vfprintf_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __mbrlen: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __fdelt_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __memmove_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __memcpy_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __vsnprintf_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __printf_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __longjmp_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __fprintf_chk: symbol not found
Error relocating /usr/lib64/libreadline.so.6: __sprintf_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __vfprintf_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __fdelt_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __memcpy_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __stpcpy_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __vsnprintf_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __strcpy_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __fprintf_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __strncat_chk: symbol not found
Error relocating /usr/lib64/libncurses.so.5: __sprintf_chk: symbol not found
These look like low level c libraries that are now missing, but I'm not sure where those are. Can someone help? Thanks.