Я использовал конвейер голема, чтобы упаковать и докернизировать свое приложение.
Для начала я пытаюсь развернуть приложение локально на Windows PC с помощью Docker (также пытался запустить его на Linux с той же проблемой). Приложение собирает данные из локальной базы данных SQlite, также работающей на моем компьютере (которая будет аналогична после развертывания на сервере).
Когда я запускаю приложение как пакет, приложение работает нормально. Но как только я создаю образ докера и запускаю его, приложение запускается, но не может подключиться к моей локальной базе данных sql, возвращая эту ошибку: Невозможно подключиться к локальному серверу MySQL через сокет '/ var / run / mysqld /mysqld.sock '(2 «Нет такого файла или каталога»)
Подключение к базе данных внутри приложения выглядит следующим образом:
con = dbConnect(RMariaDB::MariaDB(), dbname = "training_dash_db", user = "root", password = "", host = '127.0.0.1')
Мой файл Docker выглядит следующим образом:
FROM rocker/tidyverse:3.5.3
RUN R -e 'install.packages("remotes")'
RUN R -e 'remotes::install_github("r-lib/remotes", ref = "97bbf81")'
RUN R -e 'remotes::install_cran("shiny")'
RUN R -e 'remotes::install_github("Thinkr-open/golem")'
RUN R -e 'remotes::install_cran("processx")'
RUN R -e 'remotes::install_cran("attempt")'
RUN R -e 'remotes::install_cran("DT")'
RUN R -e 'remotes::install_cran("glue")'
RUN R -e 'remotes::install_cran("htmltools")'
RUN R -e 'remotes::install_cran("shinydashboard")'
RUN R -e 'remotes::install_cran("shinydashboardPlus")'
RUN R -e 'remotes::install_cran("lubridate")'
RUN R -e 'remotes::install_cran("dplyr")'
RUN R -e 'remotes::install_cran("purrr")'
RUN R -e 'remotes::install_cran("plotly")'
RUN R -e 'remotes::install_cran("DBI")'
RUN R -e 'remotes::install_cran("tibbletime")'
RUN R -e 'remotes::install_cran("tsibble")'
RUN R -e 'remotes::install_cran("shinyWidgets")'
RUN R -e 'remotes::install_cran("leaflet")'
RUN R -e 'remotes::install_cran("pool")'
RUN R -e 'remotes::install_cran("RMariaDB")'
RUN R -e 'remotes::install_cran("roxygen2")'
COPY K2dashboard_*.tar.gz /app.tar.gz
RUN R -e 'remotes::install_local("/app.tar.gz")'
EXPOSE 80
EXPOSE 3306
CMD R -e "options('shiny.port'=80,shiny.host='0.0.0.0');K2dashboard::run_app()"
Спасибо.