Docker: Make OPAM system wide available

This commit is contained in:
Christian Poessinger 2019-01-26 10:03:05 +01:00
parent 873cf3a68f
commit b4dfb255ed
2 changed files with 23 additions and 11 deletions

View File

@ -23,6 +23,7 @@ RUN apt-get update && apt-get install -y \
curl \ curl \
make \ make \
sudo \ sudo \
mc \
live-build \ live-build \
pbuilder \ pbuilder \
devscripts \ devscripts \
@ -191,10 +192,13 @@ RUN apt-get update && apt-get install -y \
# Packages needed for libvyosconfig # Packages needed for libvyosconfig
RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \
sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \ sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \
opam init --disable-sandboxing && \ opam init --root=/opt/opam --comp=4.07.0 --disable-sandboxing
eval $(opam env) && opam switch create 4.07.0 && \
eval $(opam env) && opam install -y oasis && \ RUN eval $(opam env --root=/opt/opam --set-root) && \
eval $(opam env) && opam install -y \ opam install -y \
oasis
RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \
fileutils \ fileutils \
lwt \ lwt \
lwt_ppx \ lwt_ppx \
@ -210,14 +214,14 @@ RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --o
ocaml-protoc \ ocaml-protoc \
ctypes-foreign ctypes-foreign
RUN eval $(opam env) && opam install -y \ RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \
ctypes ctypes
# Build VyConf which is required to build libvyosconfig # Build VyConf which is required to build libvyosconfig
RUN eval $(opam env) && \ RUN eval $(opam env --root=/opt/opam --set-root) && \
git clone https://github.com/vyos/vyconf.git && \ git clone https://github.com/vyos/vyconf.git /tmp/vyconf && \
cd vyconf && \ cd /tmp/vyconf && \
git checkout 0f121c12a84200 && \ git checkout v0.1 && \
./build-setup.sh && \ ./build-setup.sh && \
./configure --enable-tests && \ ./configure --enable-tests && \
make && \ make && \
@ -225,10 +229,10 @@ RUN eval $(opam env) && \
make install make install
# Build libvyosconfig # Build libvyosconfig
RUN eval $(opam env) && \ RUN eval $(opam env --root=/opt/opam --set-root) && \
git clone https://github.com/vyos/libvyosconfig && \ git clone https://github.com/vyos/libvyosconfig && \
cd libvyosconfig && \ cd libvyosconfig && \
git checkout e75e4ae638c49e && \ git checkout v0.0.4 && \
dpkg-buildpackage -uc -us -tc -b && \ dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../libvyosconfig0_*_amd64.deb dpkg -i ../libvyosconfig0_*_amd64.deb
@ -236,6 +240,10 @@ RUN eval $(opam env) && \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
whois whois
# Packages needed for vyos-xe-guest-utilities
RUN apt-get update && apt-get install -y \
golang
# Update live-build # Update live-build
RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \ RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \
apt-get update && apt-get install -y -t stretch live-build && \ apt-get update && apt-get install -y -t stretch live-build && \

View File

@ -23,6 +23,10 @@ if ! grep -q $NEW_GID /etc/group; then
groupadd --gid $NEW_GID $USER_NAME groupadd --gid $NEW_GID $USER_NAME
fi fi
# libvyosconfig depends on OCaml/OPAM so we make sure
# we can use it
echo "eval \$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc
useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME
usermod --append --groups sudo $USER_NAME usermod --append --groups sudo $USER_NAME
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME