Skip to content

Add Dockerfile for AI-Toolbox with required dependencies#69

Open
prateekbhustali wants to merge 6 commits intoSvalorzen:masterfrom
prateekbhustali:docker-image
Open

Add Dockerfile for AI-Toolbox with required dependencies#69
prateekbhustali wants to merge 6 commits intoSvalorzen:masterfrom
prateekbhustali:docker-image

Conversation

@prateekbhustali
Copy link
Copy Markdown

@prateekbhustali prateekbhustali commented Dec 27, 2023

I was unable to install it on my Mac due to the dependencies and complier conflicts, so I created a simple Docker image to install this toolbox. I hope this helps others save time :)

output of cmake

-- The CXX compiler identification is GNU 10.5.0
-- Check for working CXX compiler: /usr/bin/g++-10
-- Check for working CXX compiler: /usr/bin/g++-10 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /usr/lib/aarch64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.67")
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "3.2.92")
-- Performing Test LPSOLVE_LINKS_ALONE
-- Performing Test LPSOLVE_LINKS_ALONE - Success
-- Found LpSolve: /usr/lib/lp_solve/liblpsolve55.so
-- Found Python: /usr/bin/python3.8 (found version "3.8.10") found components: Interpreter Development
-- Found Boost: /usr/lib/aarch64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.67") found components: python38

AI_TOOLBOX SETTINGS

-- CMAKE_BUILD_TYPE: Release
-- IPO / LTO enabled
✗ NOT Building everything (-DMAKE_ALL=0)
✗ NOT Building entire library (-DMAKE_LIB=0)
✓ Building MDP (-DMAKE_MDP=1)
✗ NOT Building Factored MDP (-DMAKE_FMDP=0)
✓ Building POMDP (-DMAKE_POMDP=1)
✗ NOT Building Tests (-DMAKE_TESTS=0)
✓ Building Examples (-DMAKE_EXAMPLES=1)
✓ Building Python bindings (-DMAKE_PYTHON=1)
- Selected Python 3.8 (-DAI_PYTHON_VERSION=3)
✗ NOT Enabled runtime logging (-DAI_LOGGING_ENABLED=0)

-- Configuring done
-- Generating done
-- Build files have been written to: /usr/src/AI-Toolbox/build

@Svalorzen
Copy link
Copy Markdown
Owner

Svalorzen commented Jan 5, 2024

Cool, thanks! Could the file be modified as to actually compile the entire project (seems this actually skips a couple of things)?

Do you know also if it might be possible to test the file using GitHub Actions? If so, it'd be cool to add an additional test to the actions file together with this.

@prateekbhustali
Copy link
Copy Markdown
Author

Thanks again @Svalorzen for building this toolbox.

With the lastest commit, the docker image builds the full package and I have also added a test in the GitHub workflows to test the docker-image build.

When I was using the package, I noticed that Python modules for some POMDP solvers, such as SARSOP, Fast Informed Bound, are missing (see line 7239-7265 in docker/build_log.txt). Are they currently only available in C++?

@Svalorzen
Copy link
Copy Markdown
Owner

Ah, it's possible some things are missing in the Python bindings. I may have forgot to add them; the bindings are fairly simple to add at least. At the moment I'm fairly busy but I'll make a note to add them ASAP, as well as reviewing and merging your PR. Hopefully next week I'll have a bit of time for this :)

Thanks a lot for the effort!

CMakeLists.txt Outdated
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++2a")
set(CMAKE_CXX_COMPILER g++-10)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this line absolutely required?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right, it can be removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants