Error cannot find -lz building MariaDB on a debian based container

I’m trying to build MariaDB on a Debian based container. But it cannot find a z library.

Here is the container image script:

  • Remote communication with private docker registry issues
  • User and file permission configuration in Docker containers (docker-compose version 3)
  • docker 1.12 swarm mode: how to connect to another container on overlay network and how to use loadbalance?
  • Swift Perfect Docker Debugging the build process
  • Docker-compose: ERR_EMPTY_RESPONSE
  • App running in Docker on EB refuses connecting to self
  • FROM debian
    
    RUN apt-get update
    RUN apt-get install -y libncurses-dev
    RUN apt-get install -y build-essential;
    RUN apt-get install -y cmake;
    
    COPY mariadb-10.1.18.tar.gz /usr/bin/
    WORKDIR /usr/bin/
    RUN gzip -d mariadb-10.1.18.tar.gz
    RUN tar -xvf mariadb-10.1.18.tar
    RUN ln -s mariadb-10.1.18 mariadb
    
    WORKDIR /usr/bin/mariadb/
    RUN mkdir install; mkdir install/data; mkdir install/var; mkdir install/etc; mkdir install/tmp
    
    RUN cd /usr/bin/mariadb/;
    RUN rm -f CMakeCache.txt;
    RUN cmake \
      -DCMAKE_INSTALL_PREFIX=/usr/bin/mariadb/install \
      -DWITH_INNOBASE_STORAGE_ENGINE=1 \
      -DMYSQL_DATADIR=/usr/bin/mariadb/install/data \
      -DDOWNLOAD_BOOST=1 \
      -DWITH_BOOST=/usr/bin/mariadb/install/boost \
      -DMYSQL_UNIX_ADDR=/usr/bin/mariadb/install/tmp/mariadb.sock
    

    And the console output:

    [ 77%] Building CXX object storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/log_print.cc.o
    Linking CXX shared library libft.so
    /usr/bin/ld: cannot find -lz
    collect2: error: ld returned 1 exit status
    storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/build.make:1323: recipe for target 'storage/tokudb/PerconaFT/ft/libft.so' failed
    make[2]: *** [storage/tokudb/PerconaFT/ft/libft.so] Error 1
    CMakeFiles/Makefile2:3438: recipe for target 'storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/all' failed
    make[1]: *** [storage/tokudb/PerconaFT/ft/CMakeFiles/ft.dir/all] Error 2
    Makefile:147: recipe for target 'all' failed
    make: *** [all] Error 2
    The command '/bin/sh -c make' returned a non-zero code: 2
    

  • Docker Containers - User Data
  • Docker and “The OpenSSL library reported an error” when deployed
  • How to open multiple terminals in docker?
  • How to send STDIN to docker process
  • Using Ansible,Jenkins and docker to build fast test environments
  • python cannot import module
  • One Solution collect form web for “Error cannot find -lz building MariaDB on a debian based container”

    either change the container script and specify CMake parameter -DWITH_ZLIB=bundled to use zlib sources in extra/zlib or install zlib by apt-get install zlib-devel

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.