mirror of
https://github.com/CatalaLang/catala.git
synced 2024-09-19 00:15:39 +03:00
Update and fix Dockerfile
This commit is contained in:
parent
237dca2e75
commit
3ca1a34122
41
Dockerfile
41
Dockerfile
@ -1,15 +1,9 @@
|
|||||||
# Stage 1: setup an opam switch with all dependencies installed
|
#
|
||||||
|
# STAGE 1: setup an opam switch with all dependencies installed
|
||||||
|
#
|
||||||
# (only depends on the opam files)
|
# (only depends on the opam files)
|
||||||
FROM ocamlpro/ocaml:4.14-2023-04-02 AS dev-build-context
|
FROM ocamlpro/ocaml:4.14-2023-06-18 AS dev-build-context
|
||||||
|
# Image from https://hub.docker.com/r/ocamlpro/ocaml
|
||||||
# pandoc and ninja are not in alpine stable yet, install it manually with an explicit repository
|
|
||||||
RUN sudo apk add pandoc --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/
|
|
||||||
# In order to compiler rescript for `npm install` in french_law/js we need
|
|
||||||
# the following dependencies (according to https://github.com/GlancingMind/rescript-alpine-docker)
|
|
||||||
RUN sudo apk add python3
|
|
||||||
RUN sudo ln -s /usr/bin/python3 /usr/bin/python
|
|
||||||
RUN sudo apk add g++
|
|
||||||
RUN sudo apk add make
|
|
||||||
|
|
||||||
RUN mkdir catala
|
RUN mkdir catala
|
||||||
WORKDIR catala
|
WORKDIR catala
|
||||||
@ -22,16 +16,31 @@ ENV OPAMVAR_cataladevmode=1
|
|||||||
ENV OPAMVAR_catalaz3mode=1
|
ENV OPAMVAR_catalaz3mode=1
|
||||||
|
|
||||||
# Get a switch with all the dependencies installed
|
# Get a switch with all the dependencies installed
|
||||||
RUN opam --cli=2.1 update && \
|
# DON'T run 'opam update' here. Instead use a newer parent Docker image
|
||||||
opam --cli=2.1 switch create catala ocaml-system && \
|
# (update the 'FROM' line above)
|
||||||
opam --cli=2.1 pin . --no-action && \
|
RUN opam --cli=2.1 switch create catala ocaml-system && \
|
||||||
opam --cli=2.1 install . --with-test --with-doc --depext-only && \
|
opam --cli=2.1 install . --with-test --with-doc --depext-only && \
|
||||||
opam --cli=2.1 install . --with-test --with-doc --deps-only && \
|
opam --cli=2.1 install . --with-test --with-doc --deps-only && \
|
||||||
opam clean
|
opam clean
|
||||||
# Note: just one `opam switch create .` command should be enough once opam 2.1.3 is released (opam#5047 ; opam#5185)
|
# Note: just `opam switch create . --deps-only --with-test --with-doc && opam clean`
|
||||||
|
# should be enough once opam 2.2 is released (see opam#5185)
|
||||||
|
|
||||||
|
# Install extra dependencies not handled yet by the opam depexts
|
||||||
|
#
|
||||||
|
# python3, ninja (samurai in this case), etc. already got installed through opam's
|
||||||
|
# depext mechanism at this point -- see clerk.opam and catala.opam
|
||||||
|
#
|
||||||
|
# pandoc is not in alpine stable yet though, so install it manually with an explicit repository
|
||||||
|
RUN sudo apk add pandoc --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/
|
||||||
|
|
||||||
|
# Workaround broken rescript build that recompiles its own version of
|
||||||
|
# ninja with a badly written script :[]
|
||||||
|
RUN sudo apk add pythonispython3
|
||||||
|
|
||||||
|
|
||||||
# Stage 2: get the whole repo, run checks and builds
|
#
|
||||||
|
# STAGE 2: get the whole repo, run checks and builds
|
||||||
|
#
|
||||||
FROM dev-build-context
|
FROM dev-build-context
|
||||||
|
|
||||||
# Get the full repo
|
# Get the full repo
|
||||||
|
Loading…
Reference in New Issue
Block a user