Add ocaml image and move all images to images/
This commit is contained in:
parent
5d2d7bc030
commit
a93b289cba
|
@ -0,0 +1,23 @@
|
||||||
|
ARG OPAM_VERSION="4.10"
|
||||||
|
FROM ocaml/opam2:$OPAM_VERSION
|
||||||
|
ARG OPAM_VERSION
|
||||||
|
|
||||||
|
USER root
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
m4
|
||||||
|
ENV USER "opam"
|
||||||
|
USER $USER
|
||||||
|
ENV OPAM_SWITCH_PREFIX="/home/$USER/.opam/${OPAM_VERSION}"
|
||||||
|
ENV PATH="$OPAM_SWITCH_PREFIX/bin:$PATH"
|
||||||
|
ENV CAML_LD_LIBRARY_PATH="$OPAM_SWITCH_PREFIX/lib/stublibs:$OPAM_SWITCH_PREFIX/lib/ocaml/stublibs:$OPAM_SWITCH_PREFIX/lib/ocaml"
|
||||||
|
ENV OCAML_TOPLEVEL_PATH="$OPAM_SWITCH_PREFIX/lib/toplevel"
|
||||||
|
ENV MANPATH=":$OPAM_SWITCH_PREFIX/man"
|
||||||
|
# Build system
|
||||||
|
RUN opam update && opam upgrade && opam install \
|
||||||
|
cohttp \
|
||||||
|
landmarks \
|
||||||
|
merlin \
|
||||||
|
ocamlgraph \
|
||||||
|
ocamlformat
|
||||||
|
|
||||||
|
ENV TERM=xterm-256color
|
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
script=$(basename $0)
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
$DIR/run-in-docker "$script" ${@} <&0
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
DOCKER_NAME="ocaml-merlin"
|
||||||
|
OCAML_BIN_OUT="~/common/images/ocaml-merlin"
|
||||||
|
|
||||||
|
# Transforms directories to internal directories for ocaml
|
||||||
|
function transform_stdin {
|
||||||
|
sed -e "s!$DIR!/data!g"
|
||||||
|
}
|
||||||
|
function transform_stdout {
|
||||||
|
sed -e "s!/data!$DIR!g" | sed -e "s!/home/opam/.opam/.*/bin!$OCAML_BIN_OUT!g"
|
||||||
|
}
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/.. && pwd )"
|
||||||
|
ARGS=${@}
|
||||||
|
ARGS=$(echo ${ARGS} | transform_stdin)
|
||||||
|
|
||||||
|
|
||||||
|
if [ -t 0 ] ;
|
||||||
|
then
|
||||||
|
docker exec -it $NAME ${ARGS} ;
|
||||||
|
else
|
||||||
|
# Replace any in-container filenames with host filesnames (stdout + stderr)
|
||||||
|
{ cat <&0 | transform_stdin | docker exec -i $NAME ${ARGS} 2>&1 1>&3 3>&- | transform_stdout; } 3>&1 1>&2 | transform_stdout
|
||||||
|
fi
|
|
@ -0,0 +1 @@
|
||||||
|
./ocaml-exec.sh
|
|
@ -0,0 +1 @@
|
||||||
|
./ocaml-exec.sh
|
|
@ -1,11 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Calculate directory relative to $HOME
|
# Calculate directory relative to $HOME
|
||||||
COMMON_BIN=$PWD/bin
|
IMAGES=$PWD/images/latex/bin
|
||||||
LOCAL_BIN=/usr/local/bin
|
LOCAL_BIN=/usr/local/bin
|
||||||
|
|
||||||
pushd $LOCAL_BIN >> /dev/null
|
pushd $LOCAL_BIN >> /dev/null
|
||||||
ln -vs $COMMON_BIN/latex-runtime.sh .
|
ln -vs $IMAGES/latex/bin/latex-runtime.sh .
|
||||||
ln -vs $COMMON_BIN/latexmk .
|
ln -vs $IMAGES/latex/bin/latexmk .
|
||||||
ln -vs $COMMON_BIN/pdflatex .
|
ln -vs $IMAGES/latex/bin/pdflatex .
|
||||||
popd >> /dev/null
|
popd >> /dev/null
|
||||||
|
|
Loading…
Reference in New Issue