Ну, как вы и надеялись, вам не нужен pom.xml
для вашего проекта. Я не знаю, нужно ли вам это, чтобы быть полностью переносимым, но вот что я смоделировал на основе maven:latest
. Это достигается тем, что загружаемый файл jar-файла rhino содержит файл MANIFEST.MF
, который сообщает команде java
, как ее выполнить.
содержимое rhino-1.7.10.jar: /META-INF/MANIFEST.MF
Manifest-Version: 1.0
Main-Class: org.mozilla.javascript.tools.shell.Main
Implementation-Version: 1.7.10
Implementation-Title: Mozilla Rhino
Implementation-Vendor: Mozilla Foundation
Implementation-URL: http://www.mozilla.org/rhino
Built-Date: 2018-04-09
Built-Time: 20:03:34
Итак:
index.js
print("Hello world");
командная строка
$ mvn dependency:get -Dartifact=org.mozilla:rhino:LATEST:jar # as you have currently
... # maven output snipped
$ find .m2 -name rhino*.jar -exec java -jar {} index.js \;
Hello world!
Dockerfile (не проверено)
FROM maven:latest
# Missing here is you copying your javascript into the image
RUN [ "mvn", "dependency:get", "-Dartifact=org.mozilla:rhino:LATEST:jar" ]
RUN [ "find", "/root/.m2", "-name", "rhino*.jar", "-exec", "java", "-jar", "{}", "src/index.js", "\;" ]
Edit:
Следует также отметить, что пользовательский подкаталог .m2
содержит репозиторий, в котором хранятся все артефакты, которые загружает maven. Dockerfile maven:latest
, кажется, устанавливает это в /root/.