Skip to content

Strange compilation problem in Docker container  #200

@zou000

Description

@zou000

I am trying to build PR #199, following the instructions in README.md, but met a strange problem. Here is a simplified repro:

docker run -it --rm -v $(pwd):/v -w /v tfio-dev
./configure.sh
bazel build -s --verbose_failures @libaprutil1//...

The compilation failed with the following error message:

Use --sandbox_debug to see verbose messages from the sandbox: gcc failed: error executing command
  (cd /root/.cache/bazel/_bazel_root/a7ecd8237744645c5d189c197108d6d2/execroot/org_tensorflow_io && \
  exec env - \
    PATH=/miniconda/envs/tfio-dev/bin:/miniconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
    PWD=/proc/self/cwd \
    TF_HEADER_DIR=/miniconda/envs/tfio-dev/lib/python3.6/site-packages/tensorflow/include \
    TF_SHARED_LIBRARY_DIR=/miniconda/envs/tfio-dev/lib/python3.6/site-packages/tensorflow \
  /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -MD -MF bazel-out/k8-fastbuild/bin/external/libaprutil1/_objs/libaprutil1/apr_dbm_sdbm.pic.d -fPIC -D_GNU_SOURCE -DHAVE_CONFIG_H -DLINUX -DREENTRANT -iquote external/libaprutil1 -iquote bazel-out/k8-fastbuild/genfiles/external/libaprutil1 -iquote bazel-out/k8-fastbuild/bin/external/libaprutil1 -iquote external/libapr1 -iquote bazel-out/k8-fastbuild/genfiles/external/libapr1 -iquote bazel-out/k8-fastbuild/bin/external/libapr1 -iquote external/bazel_tools -iquote bazel-out/k8-fastbuild/genfiles/external/bazel_tools -iquote bazel-out/k8-fastbuild/bin/external/bazel_tools -Ibazel-out/k8-fastbuild/bin/external/libaprutil1/_virtual_includes/libaprutil1 -Ibazel-out/k8-fastbuild/bin/external/libapr1/_virtual_includes/libapr1 -isystem external/libaprutil1/include -isystem bazel-out/k8-fastbuild/genfiles/external/libaprutil1/include -isystem bazel-out/k8-fastbuild/bin/external/libaprutil1/include -isystem external/libaprutil1/include/private -isystem bazel-out/k8-fastbuild/genfiles/external/libaprutil1/include/private -isystem bazel-out/k8-fastbuild/bin/external/libaprutil1/include/private -isystem external/libapr1/include -isystem bazel-out/k8-fastbuild/genfiles/external/libapr1/include -isystem bazel-out/k8-fastbuild/bin/external/libapr1/include -isystem external/libapr1/include/arch/unix -isystem bazel-out/k8-fastbuild/genfiles/external/libapr1/include/arch/unix -isystem bazel-out/k8-fastbuild/bin/external/libapr1/include/arch/unix -isystem external/libapr1/include/private -isystem bazel-out/k8-fastbuild/genfiles/external/libapr1/include/private -isystem bazel-out/k8-fastbuild/bin/external/libapr1/include/private '-D_GLIBCXX_USE_CXX11_ABI=0' -pthread -fno-canonical-system-headers -Wno-builtin-macro-redefined '-D__DATE__="redacted"' '-D__TIMESTAMP__="redacted"' '-D__TIME__="redacted"' -c external/libaprutil1/dbm/apr_dbm_sdbm.c -o bazel-out/k8-fastbuild/bin/external/libaprutil1/_objs/libaprutil1/apr_dbm_sdbm.pic.o)
Execution platform: @bazel_tools//platforms:host_platform

Use --sandbox_debug to see verbose messages from the sandbox
external/libaprutil1/dbm/apr_dbm_sdbm.c:22:10: fatal error: apu_config.h: No such file or directory
 #include "apu_config.h"
          ^~~~~~~~~~~~~~
compilation terminated.

However, if I manually run the gcc command given by the message, it can find apu_config.h and can compile successfully.

I was using custom-op image with up-to-date bazel before, and this still works:

docker run -it --rm -v $(pwd):/v -w /v tensorflow/tensorflow:custom-op
# update bazel to required version
curl -sL https://github.com/bazelbuild/bazel/releases/download/0.20.0/bazel-0.20.0-installer-linux-x86_64.sh -o bazel-install.sh &&     bash -x bazel-install.sh && rm bazel-install.sh
./configure.sh
bazel build -s --verbose_failures @libaprutil1//...

I suspect this could be related the different base-images used. It is ubuntu 18.04 for tfio-dev and ubuntu 14.04 for custom-op.

The Docker host I am using is Docker Desktop Community v 2.0.0.3 on a macbook Pro.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions