diff --git a/Dockerfile b/Dockerfile index 1793f9eac95f897631a0416e346d5fa833eddaaf..55d9aaef4f8ea36ea1bd4ee81fd709d1871dfce1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,20 +11,26 @@ ENV FC_LANG en-US ENV LC_CTYPE en_US.UTF-8 # bash: various shell scripts -# wget: installing lein +# wget: installing lein (TODO -- is this actually needed? We don't use wget directly) +# curl: needed by script that installs Clojure CLI # git: ./bin/version -# yarn: frontend building -# make: backend building +# yarn: frontend building +# make: backend building (TODO -- huh? We don't use Make to build the backend) # gettext: translations # java-cacerts: installs updated cacerts to /etc/ssl/certs/java/cacerts -RUN apk add --update coreutils bash yarn git wget make gettext java-cacerts +RUN apk add --update coreutils bash yarn git wget curl make gettext java-cacerts # lein: backend dependencies and building ADD https://raw.github.com/technomancy/leiningen/stable/bin/lein /usr/local/bin/lein RUN chmod 744 /usr/local/bin/lein RUN lein upgrade +# Clojure CLI (needed for some build scripts) +ADD https://download.clojure.org/install/linux-install-1.10.1.708.sh /tmp/linux-install-1.10.1.708.sh +RUN chmod +x /tmp/linux-install-1.10.1.708.sh +RUN /tmp/linux-install-1.10.1.708.sh + # install dependencies before adding the rest of the source to maximize caching # backend dependencies diff --git a/bin/build-drivers/build_drivers/build_driver.clj b/bin/build-drivers/build_drivers/build_driver.clj index bc34a167c75e885e8cceb27d0ab0a61285b8cbcc..c067cbc5589c586bcab3593cec28f8ee31a58b4e 100644 --- a/bin/build-drivers/build_drivers/build_driver.clj +++ b/bin/build-drivers/build_drivers/build_driver.clj @@ -93,9 +93,9 @@ (u/sh {:dir (c/driver-project-dir driver)} "lein" "clean") (u/sh {:dir (c/driver-project-dir driver) :env {"LEIN_SNAPSHOTS_IN_RELEASE" "true" - #_"DEBUG" #_"1" - "JAVA_HOME" (env/env :java-home) - "HOME" (env/env :user-home)}} + "HOME" (env/env :user-home) + "PATH" (env/env :path) + "JAVA_HOME" (env/env :java-home)}} "lein" "uberjar") (strip-and-compress-uberjar! driver) (u/announce "%s uberjar build successfully." driver))) diff --git a/bin/metabuild_common/entrypoint.clj b/bin/metabuild_common/entrypoint.clj index c7767ad32644b3eebeb8fdabfc599cc129b68500..c396b811a3c264ee7f40a94be9beb0a89fbb525e 100644 --- a/bin/metabuild_common/entrypoint.clj +++ b/bin/metabuild_common/entrypoint.clj @@ -10,7 +10,8 @@ (let [e-map (Throwable->map e)] (println (colorize/red (str "Command failed: " (:cause e-map)))) (binding [pprint/*print-right-margin* 120] - (pprint/pprint e-map)))))) + (pprint/pprint e-map))) + (System/exit -1)))) (defmacro exit-when-finished-nonzero-on-exception "Execute `body` and catch exceptions. If an Exception is thrown, exit with status code 0; if an exception was diff --git a/bin/metabuild_common/shell.clj b/bin/metabuild_common/shell.clj index da3951c54d89c7324b88da61f9f6bdcde79e695c..69f6199c01b4dac48e833c66252c9b7da9374b7c 100644 --- a/bin/metabuild_common/shell.clj +++ b/bin/metabuild_common/shell.clj @@ -32,7 +32,7 @@ * `env` -- environment variables (as a map) to use when running `cmd`. If `:env` is `nil`, the default parent environment (i.e., the environment in which this Clojure code itself is ran) will be used; if `:env` IS passed, it completely replaces the parent environment in which this script is ran -- make sure you pass anything that might be - needed such as `JAVA_HOME` if you do this + needed such as `JAVA_HOME` and `PATH` if you do this * `dir` -- current directory to use when running the shell command. If not specified, command is run in the same current directory as the Clojure scripts, `bin/build-drivers`