## Based on https://github.com/ocaml/opam-dockerfiles FROM alpine:$alpine_version RUN apk update && apk upgrade && \ apk add build-base snappy-dev abuild alpine-sdk \ openssh bash nano ncurses-dev rsync xz m4 \ ocaml \ gmp-dev libev-dev libressl-dev linux-headers pcre-dev perl zlib-dev \ libsodium-dev && \ rm -f /var/cache/apk/* && \ adduser -S opam && \ adduser opam abuild && \ echo 'opam ALL=(ALL:ALL) NOPASSWD:ALL' > /etc/sudoers.d/opam && \ chmod 440 /etc/sudoers.d/opam && \ chown root:root /etc/sudoers.d/opam && \ sed -i.bak 's/^Defaults.*requiretty//g' /etc/sudoers USER opam WORKDIR /home/opam RUN mkdir ~/.ssh && \ chmod 700 ~/.ssh && \ git config --global user.email "docker@example.com" && \ git config --global user.name "Docker CI" && \ cd /home/opam && \ git clone -b "$opam_tag" git://github.com/ocaml/opam && \ cd /home/opam/opam && \ ./configure --prefix /usr && \ make lib-ext && \ make opam && \ sudo cp -L opam /usr/bin/opam && \ cd /home/opam && \ sudo -u opam sh -c "git clone -b master git://github.com/ocaml/opam-repository" && \ cd opam-repository && \ sudo -u opam sh -c "cd /home/opam/opam-repository && opam admin upgrade && git checkout -b v2 && git add . && git commit -a -m 'opam admin upgrade'" && \ sudo -u opam sh -c "opam init -a -y --comp $ocaml_version /home/opam/opam-repository" && \ sudo -u opam sh -c "opam install -y depext travis-opam" && \ cd /home/opam/opam && \ make opam-installer && \ sudo cp -L opam-installer /usr/bin/opam-installer && \ rm -r /home/opam/opam COPY scripts/leveldb-1.18.APKBUILD /home/opam/leveldb-1.18/APKBUILD RUN sudo chown -R opam leveldb-1.18 RUN sudo apk update && \ abuild-keygen -ai && \ cd leveldb-1.18 && \ abuild checksum && abuild -r && \ cd .. && \ sudo apk add packages/opam/x86_64/leveldb-1.18-r0.apk && \ sudo apk add packages/opam/x86_64/leveldb-dev-1.18-r0.apk && \ rm -rf leveldb-1.18 packages && \ sudo rm -f /var/cache/apk/* ENTRYPOINT [ "opam", "config", "exec", "--" ] CMD [ "sh" ]