-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
36 lines (26 loc) · 1.06 KB
/
Dockerfile
File metadata and controls
36 lines (26 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
FROM ubuntu:22.04 AS gurobi
RUN apt-get update -y && apt-get --no-install-recommends install -y \
wget \
build-essential \
ca-certificates && \
update-ca-certificates
ARG GRB_VERSION=10.0.1
ARG GRB_SHORT_VERSION=10.0
RUN wget -v https://packages.gurobi.com/${GRB_SHORT_VERSION}/gurobi${GRB_VERSION}_linux64.tar.gz \
&& tar -xvf gurobi${GRB_VERSION}_linux64.tar.gz && \
rm -f gurobi${GRB_VERSION}_linux64.tar.gz && \
mv -f gurobi* gurobi
WORKDIR /gurobi/linux64/src/build
RUN make && cp libgurobi_c++.a ../../lib/
FROM ubuntu:22.04 AS builder
WORKDIR /code
COPY . ./
COPY --from=gurobi /gurobi/linux64/lib/libgurobi100.so /gurobi/linux64/lib/libgurobi_c++.a /opt/gurobi/linux64/lib/
COPY --from=gurobi /gurobi/linux64/include/gurobi_c.h /gurobi/linux64/include/gurobi_c++.h /opt/gurobi/linux64/include/
RUN apt-get update -y && apt-get --no-install-recommends install -y \
libfmt-dev \
build-essential \
cmake && \
rm -rf /var/lib/apt/lists/*
RUN cmake -S . -B build -DGUROBI_DIR=/opt/gurobi/linux64 -DCMAKE_BUILD_TYPE=Release && \
cmake --build build -j 4