camsas / firmament

The Firmament cluster scheduling platform
Apache License 2.0
415 stars 79 forks source link

Dockerfile build issues #45

Closed cxxly closed 8 years ago

cxxly commented 8 years ago

I try to install firmament on centos7 and ubuntu14.04, but finally failed. It requires so many dependencies which must be installed one by one. Is there any easily solution(such add a dockerfile) or more detailed description about how to install firmament.

ms705 commented 8 years ago

There's a Dockerfile in the contrib directory, which ought to work. It's based on an Ubuntu 14.04 userspace; we've also recently tested 16.04 and found it to work.

Building on CentOS is likely tricky -- last time we tried, many dependencies had to be compiled from because the CentOS packages were way outdated. We're happy to help get a native CentOS build to work and merge contributed documentation for it, though.

cxxly commented 8 years ago

Thanks @ms705 There are some errors when I build dockerfile:

...
Scanning dependencies of target hello_world
[ 63%] Building CXX object src/CMakeFiles/examples/hello_world.dir/examples/hello_world/hello_world.cc.o
[ 64%] Building CXX object src/CMakeFiles/examples/hello_world.dir/engine/task_lib.cc.o
Linking CXX executable examples/hello_world
/usr/bin/ld: cannot open output file examples/hello_world: Is a directory
collect2: error: ld returned 1 exit status
make[2]: *** [src/examples/hello_world] Error 1
make[1]: *** [src/CMakeFiles/examples/hello_world.dir/all] Error 2
make: *** [all] Error 2
The command '/bin/sh -c mkdir /var/log/firmament && cd /firmament && cmake . && make' returned a non-zero code: 2
ms705 commented 8 years ago

Hi @cxxly,

Thanks for reporting -- we'll look into this. Seems like there's a name clash between a CMake target and a directory, although it's strange that we didn't see this in our testing environment.

As a workaround, you can remove the examples directory from the CMake targets and re-try.

ms705 commented 8 years ago

This was due to a name clash between CMake executable targets and subdirectories, and only happened when doing an in-tree build (as the Dockerfile does).

Fix under review in 282138.

ms705 commented 8 years ago

Fix merged, Docker build now passes.