src/Pure/Tools/docker_build.scala
changeset 78299 337ef5cdb70c
parent 77794 89e4971df810
equal deleted inserted replaced
78298:3b0f8f1010f2 78299:337ef5cdb70c
    13   private lazy val default_logic = Isabelle_System.getenv("ISABELLE_LOGIC")
    13   private lazy val default_logic = Isabelle_System.getenv("ISABELLE_LOGIC")
    14 
    14 
    15   private val Isabelle_Name = """^.*?(Isabelle[^/\\:]+)_linux(?:_arm)?\.tar\.gz$""".r
    15   private val Isabelle_Name = """^.*?(Isabelle[^/\\:]+)_linux(?:_arm)?\.tar\.gz$""".r
    16 
    16 
    17   val packages: List[String] =
    17   val packages: List[String] =
    18     List("curl", "less", "libfontconfig1", "libgomp1", "openssh-client", "pwgen")
    18     List("curl", "less", "libfontconfig1", "libgomp1", "openssh-client", "perl", "pwgen", "rlwrap")
    19 
    19 
    20   val package_collections: Map[String, List[String]] =
    20   val package_collections: Map[String, List[String]] =
    21     Map("X11" -> List("libx11-6", "libxext6", "libxrender1", "libxtst6", "libxi6"),
    21     Map("X11" -> List("libx11-6", "libxext6", "libxrender1", "libxtst6", "libxi6"),
    22       "latex" ->
    22       "latex" ->
    23         List(
    23         List(
    69 """ + (if (is_remote)
    69 """ + (if (is_remote)
    70        "RUN curl --fail --silent --location " + Bash.string(app_archive) + " > Isabelle.tar.gz"
    70        "RUN curl --fail --silent --location " + Bash.string(app_archive) + " > Isabelle.tar.gz"
    71       else "COPY Isabelle.tar.gz .") + """
    71       else "COPY Isabelle.tar.gz .") + """
    72 RUN tar xzf Isabelle.tar.gz && \
    72 RUN tar xzf Isabelle.tar.gz && \
    73   mv """ + isabelle_name + """ Isabelle && \
    73   mv """ + isabelle_name + """ Isabelle && \
    74   sed -i -e 's,ISABELLE_HOME_USER=.*,ISABELLE_HOME_USER="\$USER_HOME/.isabelle",g;' Isabelle/etc/settings && \
    74   perl -pi -e 's,ISABELLE_HOME_USER=.*,ISABELLE_HOME_USER="\$USER_HOME/.isabelle",g;' Isabelle/etc/settings && \
    75   sed -i -e 's,ISABELLE_LOGIC=.*,ISABELLE_LOGIC=""" + logic + """,g;' Isabelle/etc/settings && \
    75   perl -pi -e 's,ISABELLE_LOGIC=.*,ISABELLE_LOGIC=""" + logic + """,g;' Isabelle/etc/settings && \
    76   Isabelle/bin/isabelle build -o system_heaps -b """ + logic + """ && \
    76   Isabelle/bin/isabelle build -o system_heaps -b """ + logic + """ && \
    77   rm Isabelle.tar.gz""" + (if (entrypoint) """
    77   rm Isabelle.tar.gz""" + (if (entrypoint) """
    78 
    78 
    79 ENTRYPOINT ["Isabelle/bin/isabelle"]
    79 ENTRYPOINT ["Isabelle/bin/isabelle"]
    80 """ else "")
    80 """ else "")