Skip to content

Commit 4a52768

Browse files
authored
update dockerfiles (#679)
1 parent 5ff8f68 commit 4a52768

11 files changed

+116
-227
lines changed

Dockerfile

+7-25
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,27 @@
33
# Based on owlbarn/owl master branch
44
############################################################
55

6-
FROM arm64v8/ubuntu
6+
FROM ubuntu
77

88
##################### PREREQUISITES ########################
99

1010
RUN apt-get update
11-
RUN apt-get -y install git build-essential ocaml wget unzip aspcud m4 pkg-config bubblewrap
12-
RUN apt-get -y install libshp-dev libopenblas-dev liblapacke-dev
13-
14-
ENV VER=2.1.5
15-
RUN wget https://github.com/ocaml/opam/releases/download/$VER/opam-full-$VER.tar.gz \
16-
&& tar -xvf opam-full-$VER.tar.gz \
17-
&& cd opam-full-$VER \
18-
&& ./configure && make lib-ext && make && make install
11+
RUN apt-get -y install aspcud libshp-dev libopenblas-dev liblapacke-dev build-essential wget
12+
RUN apt-get -y install opam pkg-config zlib1g-dev
1913

2014
ENV OCAML_VER=5.1.0
2115
RUN yes | opam init --disable-sandboxing --comp $OCAML_VER && eval $(opam config env)
22-
23-
RUN apt-get install zlib1g-dev
2416
RUN opam install -y dune ocaml-compiler-libs ctypes alcotest utop conf-openblas dune-configurator stdio npy
2517

26-
#################### Setup Env #######################
18+
#################### INSTALL OWL #######################
2719

2820
ENV OWLPATH /root/owl
29-
ENV PATH /root/.opam/${OCAML_VER}/bin:/usr/local/sbin/:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH
30-
ENV CAML_LD_LIBRARY_PATH /root/.opam/${OCAML_VER}/lib/stublibs
31-
32-
ENV OWL_CFLAGS "-g -O3 -Ofast -march=native -funroll-loops -ffast-math -DSFMT_MEXP=19937 -fno-strict-aliasing -Wno-tautological-constant-out-of-range-compare"
33-
ENV EIGENCPP_OPTFLAGS "-Ofast -march=native -funroll-loops -ffast-math"
34-
ENV EIGEN_FLAGS "-O3 -Ofast -march=native -funroll-loops -ffast-math"
35-
36-
#################### INSTALL OWL #######################
21+
# ENV PATH /root/.opam/${OCAML_VER}/bin:/usr/local/sbin/:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH
22+
# ENV CAML_LD_LIBRARY_PATH /root/.opam/${OCAML_VER}/lib/stublibs
23+
#ENV OWL_CFLAGS "-g -O3 -Ofast -march=native -funroll-loops -ffast-math -DSFMT_MEXP=19937 -fno-strict-aliasing -Wno-tautological-constant-out-of-range-compare"
3724

3825
RUN cd /root && git clone https://github.com/owlbarn/owl.git
3926

40-
# HACK: remove unrecognised sse compiler option on arm; add libraries for linking
41-
RUN sed -i -- 's/linux_elf/linux_eabihf/g' $OWLPATH/src/owl/config/configure.ml \
42-
&& sed -i -- 's/-mfpmath=sse//g' $OWLPATH/src/owl/config/configure.ml \
43-
&& sed -i -- 's/-msse2//g' $OWLPATH/src/owl/config/configure.ml
44-
4527
RUN cd $OWLPATH \
4628
&& eval `opam config env ` \
4729
&& make && make install

docker/Dockerfile.alpine

-30
This file was deleted.

docker/Dockerfile.archlinux

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
############################################################
2+
# Dockerfile to build Owl docker image
3+
# Based on owlbarn/owl master branch
4+
# By Liang Wang <[email protected]>
5+
############################################################
6+
7+
FROM ocaml/opam:archlinux-ocaml-5.1
8+
9+
##################### PREREQUISITES ########################
10+
11+
RUN sudo pacman -S --noconfirm base-devel wget zlib shapelib
12+
RUN sudo pacman -S --noconfirm lapack cblas lapacke openblas
13+
RUN opam install -y dune ocaml-compiler-libs ctypes alcotest utop conf-openblas dune-configurator stdio npy
14+
15+
#################### Setup Env #######################
16+
17+
ENV OWLPATH /home/opam/owl
18+
ENV PATH /home/opam/.opam/${OCAML_VER}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH
19+
ENV CAML_LD_LIBRARY_PATH /root/.opam/${OCAML_VER}/lib/stublibs
20+
21+
#################### INSTALL OWL #######################
22+
23+
RUN cd /home/opam && git clone https://github.com/owlbarn/owl.git
24+
25+
RUN cd $OWLPATH \
26+
&& eval $(opam env) \
27+
&& make && make install
28+
29+
############## SET UP DEFAULT CONTAINER VARS ##############
30+
31+
RUN echo "#require \"owl-top\";; open Owl;;" >> /home/opam/.ocamlinit \
32+
&& opam env >> /home/opam/.bashrc \
33+
&& bash -c "source /home/opam/.bashrc"
34+
35+
WORKDIR $OWLPATH
36+
ENTRYPOINT /bin/bash

docker/Dockerfile.centos

-28
This file was deleted.

docker/Dockerfile.debian

+18-12
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,33 @@
44
# By Liang Wang <[email protected]>
55
############################################################
66

7-
FROM ocaml/opam2:debian-stable
8-
USER opam
7+
FROM debian
8+
USER root
99

1010
##################### PREREQUISITES ########################
1111

12-
RUN sudo apt-get -y update
13-
RUN sudo apt-get -y install m4 wget unzip aspcud libshp-dev gfortran
14-
RUN sudo apt-get -y install pkg-config git camlp4-extra
15-
RUN sudo apt-get -y install libopenblas-dev liblapacke-dev
16-
RUN cd /home/opam/opam-repository && git pull --quiet origin master
17-
RUN opam update -q
12+
RUN apt-get update
13+
RUN apt-get -y install aspcud libshp-dev libopenblas-dev liblapacke-dev build-essential wget
14+
RUN apt-get -y install opam pkg-config zlib1g-dev
15+
16+
ENV OCAML_VER=5.1.0
17+
RUN yes | opam init --disable-sandboxing --comp $OCAML_VER && eval $(opam config env)
18+
RUN opam install -y dune ocaml-compiler-libs ctypes alcotest utop conf-openblas dune-configurator stdio npy
1819

1920
#################### INSTALL OWL #######################
2021

21-
ENV OWLPATH /home/opam/owl
22-
RUN opam install owl owl-top utop -y
22+
RUN cd /root && git clone https://github.com/owlbarn/owl.git
23+
24+
ENV OWLPATH /root/owl
25+
RUN cd $OWLPATH \
26+
&& eval `opam config env ` \
27+
&& make && make install
2328

2429
############## SET UP DEFAULT CONTAINER VARS ##############
2530

26-
RUN echo "#require \"owl-top\";; open Owl;;" >> /home/opam/.ocamlinit \
27-
&& echo 'eval $(opam env)' >> /home/opam/.bashrc
31+
RUN echo "#require \"owl-top\";; open Owl;;" >> /root/.ocamlinit \
32+
&& opam config env >> /root/.bashrc \
33+
&& bash -c "source /root/.bashrc"
2834

2935
WORKDIR $OWLPATH
3036
ENTRYPOINT /bin/bash

docker/Dockerfile.fedora

+15-10
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,30 @@
44
# By Liang Wang <[email protected]>
55
############################################################
66

7-
FROM ocaml/opam2:fedora-29
8-
USER opam
7+
FROM ocaml/opam:fedora-ocaml-5.1
98

109
##################### PREREQUISITES ########################
1110

1211
RUN sudo yum update -y
1312
RUN sudo yum -y install git wget unzip m4 pkg-config gcc-gfortran
14-
RUN sudo dnf -y install openblas-devel
15-
RUN cd /home/opam/opam-repository && git pull --quiet origin master
16-
RUN opam update -q
13+
RUN sudo dnf5 -y install zlib-ng-compat-devel
14+
RUN sudo dnf5 -y install openblas-devel
15+
RUN opam install -y dune ocaml-compiler-libs ctypes alcotest utop conf-openblas dune-configurator stdio npy
1716

18-
################## INSTALL OWL LIBRARY #####################
17+
#################### INSTALL OWL #######################
1918

2019
ENV OWLPATH /home/opam/owl
21-
RUN opam install owl owl-top utop -y
20+
RUN cd /home/opam && git clone https://github.com/owlbarn/owl.git
21+
22+
RUN cd $OWLPATH \
23+
&& eval $(opam env) \
24+
&& make && make install
2225

2326
############## SET UP DEFAULT CONTAINER VARS ##############
2427

25-
RUN echo "#require \"owl-top\";; open Owl;;" >> /home/opam/.ocamlinit
26-
RUN echo 'eval $(opam env)' >> /home/opam/.bashrc
28+
RUN echo "#require \"owl-top\";; open Owl;;" >> /home/opam/.ocamlinit \
29+
&& opam env >> /home/opam/.bashrc \
30+
&& bash -c "source /home/opam/.bashrc"
31+
2732
WORKDIR $OWLPATH
28-
ENTRYPOINT /bin/bash
33+
ENTRYPOINT /bin/bash

docker/Dockerfile.openblas

+20-17
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,41 @@
44
# By Liang Wang <[email protected]>
55
############################################################
66

7-
FROM owlbarn/openblas:ubuntu
8-
9-
FROM ocaml/opam2:ubuntu
10-
USER root
7+
FROM ocaml/opam:ubuntu-20.04-ocaml-5.1
8+
USER opam
119

1210
#################### INSTALL OPENBLAS ######################
1311

1412
WORKDIR /home/opam
15-
COPY --from=0 /home/opam/OpenBLAS OpenBLAS
16-
RUN make -C OpenBLAS/ install
17-
RUN ldconfig /opt/OpenBLAS/lib/
13+
14+
RUN sudo apt-get update
15+
RUN sudo apt-get install -y git gfortran apt-utils
16+
RUN git clone https://github.com/xianyi/OpenBLAS.git
17+
RUN make -C OpenBLAS/
18+
RUN sudo make -C OpenBLAS/ install
19+
RUN sudo ldconfig /opt/OpenBLAS/lib/
1820

1921
##################### PREREQUISITES ########################
2022

21-
ENV DEBIAN_FRONTEND noninteractive
22-
RUN apt-get update -y
23-
RUN apt-get install -y m4 wget unzip aspcud libshp-dev gfortran pkg-config git
24-
RUN cd /home/opam/opam-repository && git pull --quiet origin master
25-
RUN opam update -q
23+
RUN sudo apt update -y
24+
RUN sudo apt install -y aspcud libshp-dev build-essential wget pkg-config zlib1g-dev
25+
RUN opam install -y dune ocaml-compiler-libs ctypes alcotest utop dune-configurator stdio npy
2626

2727
#################### INSTALL OWL #######################
2828

2929
ENV OWLPATH /home/opam/owl
30-
ENV OWL_DISABLE_LAPACKE_LINKING_FLAG 1
31-
ENV OWL_COMPILE_CFLAGS "-I/opt/OpenBLAS/include -I/home/opam/OpenBLAS/lapack-netlib/LAPACKE/include/ -L/opt/OpenBLAS/lib"
32-
RUN CFLAGS=${OWL_COMPILE_CFLAGS} opam install owl owl-top utop -y
30+
31+
RUN cd /home/opam && git clone https://github.com/owlbarn/owl.git
32+
RUN cd $OWLPATH \
33+
&& eval `opam config env` \
34+
&& make && make install
3335

3436
############## SET UP DEFAULT CONTAINER VARS ##############
3537

3638
RUN echo "#require \"owl-top\";; open Owl;;" >> /home/opam/.ocamlinit \
37-
&& echo 'eval $(opam env)' >> /home/opam/.bashrc
39+
&& echo 'eval $(opam env)' >> /home/opam/.bashrc \
40+
&& bash -c "source /home/opam/.bashrc"
3841

39-
WORKDIR $OWLPATH
42+
WORKDIR /home/opam
4043
ENTRYPOINT /bin/bash
4144

docker/Dockerfile.opensuse

-28
This file was deleted.

docker/Dockerfile.ubuntu

-41
This file was deleted.

0 commit comments

Comments
 (0)