15950057e3
This reverts commit 72b2007bc4
.
Reason for revert: Breaks deployment
Change-Id: I71a66e7e64999118a87e1d67962f96a9def538fb
51 lines
1.9 KiB
Docker
51 lines
1.9 KiB
Docker
# syntax=docker/dockerfile:1.3-labs
|
|
FROM fedora:39 AS builder
|
|
|
|
# To build:
|
|
# docker build -t nebulous/solver .
|
|
|
|
# To run, resulting in a terminal for further experiments:
|
|
# docker run -it nebulous/solver
|
|
|
|
WORKDIR /solver
|
|
COPY ./ /solver
|
|
|
|
RUN <<EOF
|
|
# Development framework
|
|
dnf --assumeyes install gcc-c++ make git-core boost boost-devel ccache qpid-proton-cpp qpid-proton-cpp-devel json-c json-devel json-glib jsoncpp jsoncpp-devel coin-or-Couenne wget
|
|
# Dependencies
|
|
git clone https://github.com/jarro2783/cxxopts.git CxxOpts
|
|
git clone https://github.com/GeirHo/TheronPlusPlus.git Theron++
|
|
mkdir Theron++/Bin
|
|
|
|
# Install AMPL library
|
|
wget --no-verbose https://portal.ampl.com/external/?url=https://portal.ampl.com/dl/amplce/ampl.linux64.tgz -O ampl.linux64.tgz
|
|
tar --file=ampl.linux64.tgz --extract
|
|
mv ampl.linux-intel64 AMPL
|
|
rm ampl.linux64.tgz
|
|
EOF
|
|
|
|
# Make AMPL shared libraries findable
|
|
ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/solver/AMPL:/solver/AMPL/amplapi/lib"
|
|
|
|
# Build solver
|
|
RUN make SolverComponent -e THERON=./Theron++ AMPL_INCLUDE=./AMPL/amplapi/include AMPL_LIB=./AMPL/amplapi/lib CxxOpts_DIR=./CxxOpts/include
|
|
|
|
# ============================================================
|
|
|
|
FROM fedora:39
|
|
WORKDIR /solver
|
|
RUN dnf --assumeyes install boost qpid-proton-cpp json-c json-glib jsoncpp coin-or-Couenne
|
|
COPY --from=builder /solver /solver
|
|
ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/solver/AMPL:/solver/AMPL/amplapi/lib"
|
|
|
|
#
|
|
# We set constant `--ModelDir` and `--AMPLDir`; the other arguments can be
|
|
# given on the command line, like so (note that `--Endpoint` is mandatory):
|
|
#
|
|
# docker run nebulous/solver --Broker=https://somewhere.else/ --Endpoint=my-app-id
|
|
#
|
|
# For a shell, to diagnose problems etc.:
|
|
# docker run --rm -it --entrypoint /bin/bash nebulous/solver
|
|
ENTRYPOINT ["/solver/SolverComponent", "--ModelDir=/tmp", "--AMPLDir=/solver/AMPL"]
|