Я создал образ Docker для моего Java приложения - https://bitbucket.org/ijabz/songkongdocker/src/master/Dockerfile
Последняя строка:
CMD /opt/songkong/songkongremote.sh
(упрощенное) содержимое songremote. sh - это
#!/bin/sh
umask 000
./jre/bin/java-jar lib/songkong-6.9.jar -r
, и он работает нормально.
Однако у меня есть клиент, который хочет запустить songkong с параметром -m и путь
например,
#!/bin/sh
umask 000
./jre/bin/java-jar lib/songkong-6.9.jar -m /users/music
Итак, есть ли способ, которым один docker может разрешить запуск двух разных команд, или мне нужно создать другой docker.
В любом случае, как разрешить пользователю / users / musi c предоставлять
Полное содержимое songkongremote немного сложнее, так как нужно передать больше параметров в Java
#! / bin / sh umask 000 ./jre/bin/java -XX: MaxRAMPercentage = 60 -XX: MetaspaceSize = 45 -Dcom.mchange.v2.log.MLog = com.mchange.v2.log.jdk14logging.Jdk14MLog -Dorg.jboss.logging.provider = jdk -D java .util.logging.config .class = com.jthink.songkong.logging.StandardLogging - Dhttps.protocols = TLSv1.1, TLSv1.2 --add-opens java .base / java .lang = ALL-UNNAMED -jar lib / songkong-6.9.jar -r
Обновление Я следую за ответом каскадеров, и он что-то сделал (см. Команду выполнения)
введите описание изображения здесь
но songkong. sh действует так, как если бы параметры не были переданы вообще (вместо параметра -r).
songkong. sh (переименовано из songkongremote. sh) теперь содержит
#!/bin/sh
umask 000
./jre/bin/java -XX:MaxRAMPercentage=60 -XX:MetaspaceSize=45 -Dcom.mchange.v2.log.MLog=com.mchange.v2.log.jdk14logging.Jdk14MLog -Dorg.jboss.logging.provider=jdk -Djava.util.logging.config.class=com.jthink.songkong.logging.StandardLogging -Dhttps.protocols=TLSv1.1,TLSv1.2 --add-opens java.base/java.lang=ALL-UNNAMED -jar lib/songkong-6.10.jar "$@"
, а конец файла Dockerfile теперь
EXPOSE 4567
ENTRYPOINT ["/sbin/tini"]
# Config, License, Logs, Reports and Internal Database
VOLUME /songkong
# Music folder should be mounted here
VOLUME /music
WORKDIR /opt/songkong
ENTRYPOINT /opt/songkong/songkong.sh
CMD ["-r"]
Я не понимаю, хорошо, что есть две точки входа или значение sbin / tini one