Я работаю над тем, чтобы определить контейнер Docker, который можно было бы развернуть в облачной среде, и подготовить некоторые отчеты по базе данных нашей фирмы и развернуть ее с минимальным участием нашей команды по науке о данных (включая меня), насколько это возможно.
Я почти закончил, все готово и запущено, за одним раздражающим исключением - отчеты создаются в R с использованием некоторого кода, который мы использовали в течение нескольких лет.Я строю поверх стиха Рокера и добавляю библиотеку потребностей.
Раздражающая вещь (в данном случае) о потребностях заключается в том, что при первом запуске она запрашивает следующее:
>library('needs')
Should `needs` load itself when it's... needed? (this is recommended)
1: No
2: Yes
Selection:
В типичной интерактивной настройке это нормально, я просто набираю «Да» и нажимаю клавишу ввода, и я готов идти.Однако, когда я хочу, чтобы вся среда создавалась и запускалась один раз в неделю, я не хочу отвечать на этот вопрос.Я хотел бы предположить, что да.
То, что я до сих пор пробовал, включает в себя каждый из них:
library('needs', quiet=TRUE)
library('needs', quietly=TRUE)
suppressMessages(library('needs', quietly=TRUE))
suppressWarnings(suppressMessages(library('needs', quietly = T)))
suppressPackageStartupMessages(library('needs', quietly=TRUE))
, ни один из которых не решает проблему. требуется документация предусматривает изменение этого параметра позже программным способом, но не для , определяющего параметр при первом запуске:
Рекомендуемое использование - разрешить автозагрузке функции при появлении запроса при первой загрузке пакета в интерактивном режиме.Чтобы изменить этот параметр позже, запустите needs ::: autoload (TRUE) или needs ::: autoload (FALSE), чтобы включить или выключить автозагрузку, соответственно.
Я также попытался выполнить тихую установкуТоже безрезультатно.К сожалению, я не могу запустить команды bash в своем Dockerfile, чтобы ответить Да, или, по крайней мере, я не нашел способа.
Я бы хотел избежать удаления зависимостей для нужд, так как это потребует LOTрефакторинга кода.
Есть идеи, как решить эту проблему?
Спасибо!:] -Vince
Обновление
Решение немного странное, но в моем Dockerfile я делаю vim-редактирование файла, который нужно назначить переменной sysfile:
sysfile <- system.file("extdata", "promptUser", package = "needs")
, который для ME был / usr / local / lib / R / site-library / needs / extdata / promptUser, и изменил его содержимое с "1" на "0", решая мою проблему.