#golem
#golem
Вопрос:
Мы позволяем пакету golem автоматически создавать для нас файл Dockerfile и можем запускать образ docker и просматривать приложение в корневом каталоге: http://localhost:3838/?...
Но мы хотели бы, чтобы приложение отображалось в подкаталоге типа http://localhost:3838/myApp/v1/?...
, чтобы мы могли настроить необходимое прокси для Apache и чтобы это и другие приложения были доступны с одного сервера.
Мы можем вручную отредактировать файл Dockerfile, чтобы скопировать файл shiny-server.conf со следующей информацией:
# Define a server that listens on port 3838
server {
listen 3838;
# Define a location at the base URL
location /myApp/v1/ {
# Host the directory of Shiny Apps stored in this directory
site_dir /srv/shiny-server;
# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;
}
}
Приведенное выше решение похоже на взлом, и мы надеемся, что внутри golem есть функциональность, которая позволит нам установить подкаталог, в котором будет отображаться приложение.
Ответ №1:
К сожалению, нет способа включить конфигурацию nginx внутри Dockerfile
программно: {golem}
пытается помочь с созданием файла, но некоторые вещи все еще нужно сделать вручную.
Также обратите внимание, что {golem}
не создается файл Dockerfile с сервером shiny в нем, он создает автономный образ docker, который запускает приложение, поэтому сервер shiny не запущен, только процесс R. {shiny}
как бы то ни было, нет способа изначально запустить его по заданному пути, он всегда находится в корне, на порту.
При этом вы можете либо отредактировать dockerfile, чтобы он также объединял nginx (или любой другой балансировщик нагрузки), чтобы вы могли обслуживать приложение по пути, либо обслуживать свое приложение на другом порту, используя port
аргумент add_dockerfile()
: это может быть проще настроить с помощью вашего прокси-сервера Apache.
Колин