clojure.main не найден при запуске приложения в docker контейнере - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть следующий Dockerfile в моем проекте clojure + clojurescript:

# We will use Ubuntu for our image
FROM ubuntu:latest

# Updating Ubuntu packages

ARG CLOJURE_TOOLS_VERSION=1.10.1.507


RUN apt-get -qq update && apt-get -qq -y install curl wget bzip2 openjdk-8-jdk-headless \
    && curl -sSL https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -o /tmp/miniconda.sh \
    && bash /tmp/miniconda.sh -bfp /usr/local \
    && rm -rf /tmp/miniconda.sh \
    && conda install -y python=3 \
    && conda update conda \
    && curl -o install-clojure https://download.clojure.org/install/linux-install-${CLOJURE_TOOLS_VERSION}.sh \
    && chmod +x install-clojure \
    && ./install-clojure && rm install-clojure \
    && wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein \
    && chmod a+x lein \
    && mv lein /usr/bin \
    && apt-get -qq -y autoremove \
    && apt-get autoclean \
    && rm -rf /var/lib/apt/lists/* /var/log/dpkg.log \
    && conda clean --all --yes


ENV PATH /opt/conda/bin:$PATH

RUN conda create -n pyclj python=3.6 && conda install -n pyclj numpy mxnet

## To install pip packages into the pyclj environment do
RUN conda run -n pyclj python3 -mpip install numpy

RUN java $JVM_OPTS -cp target/myapp.jar clojure.main -m myapp.application

Но когда я отправляю sh это на heroku и пытаюсь зайти в свое приложение, я получаю ошибку:

"clojure.main not found."

Когда я пытаюсь создать и запустить этот контейнер локально, я получаю ту же ошибку. Что я делаю не так и как мне это исправить?

--- EDIT ---


(ns myapp.application
  (:gen-class)
  (:require [com.stuartsierra.component :as component]
            [myapp.components.server-info :refer [server-info]]
            [system.components.endpoint :refer [new-endpoint]]
            [system.components.handler :refer [new-handler]]
            [system.components.middleware :refer [new-middleware]]
            [system.components.aleph :refer [new-web-server]]
            [myapp.config :refer [config]]
            [myapp.routes :refer [home-routes]]))

(defn app-system [config]
  (component/system-map
   :routes     (new-endpoint home-routes)
   :middleware (new-middleware {:middleware (:middleware config)})
   :handler    (-> (new-handler :router :bidi
                    )
                   (component/using [:routes :middleware]))
   :http       (-> (new-web-server (:http-port config) :handler)
                   (component/using [:handler]))
   :server-info (server-info (:http-port config))))

(defn -main [& _]
  (let [config (config)]
    (-> config
        app-system
        component/start)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...