如何解决docker化后如何获取golem应用生成日志?
我们有一个运行良好的dockerized golem应用程序,除了在docker容器中部署时不创建任何输出(日志语句)外,其他都可以正常运行。实际上,我们甚至都没有看到任何默认的闪亮服务器日志。
以下是我们的“ AirsensorDataViewer”魔像应用程序的app.R:
pkgload::load_all(export_all = FALSE,helpers = FALSE,attach_testthat = FALSE)
options(
golem.app.prod = TRUE,shiny.port = 3838,shiny.host = '0.0.0.0'
)
AirsensorDataViewer::run_app()
这是我们的Dockerfile(基于包含所有必需软件包的基本映像构建):
FROM mazamascience/airsensor-dataviewer-base:1.0.1
# Create the build zone,copy the local directory over to the docker image,build and install R package.
RUN mkdir /build_zone
ADD . /build_zone
workdir /build_zone
RUN R -e 'remotes::install_local(upgrade="never")'
# Remove sample apps
RUN rm -rf /srv/shiny-server/
# copy app to image
copY . /srv/shiny-server/asdv
# add .conf file to image/container to preserve log file
copY ./shiny-server.conf /etc/shiny-server/shiny-server.conf
# When run image and create a container,this container will listen on port 3838
EXPOSE 3838
# Avoiding running as root --> run container as user 'shiny' instead
# allow permission
RUN sudo chown -R shiny:shiny /srv/shiny-server
RUN chmod -R 755 /srv/shiny-server/asdv
# execute in the following as user --> imortant to give permission before that step
USER shiny
##run app
CMD ["/usr/bin/shiny-server.sh"]
最后,我们的Shiny-server.conf文件:
# Instruct Shiny Server to run applications as the user "shiny"
run_as shiny;
# Define a server that listens on port 3838
server {
listen 3838;
# Define a location at the base URL
location /asdv/test/ {
# Host the directory of Shiny Apps stored in this directory
site_dir /srv/shiny-server/asdv;
# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;
# When a user visits the base URL rather than a particular application,# an index of the applications available in this directory will be shown.
directory_index on;
}
}
有人成功获得了dockerized golem应用来创建/写入docker容器中的文件吗?
解决方法
我希望发布的问题可能对希望这样做的人有所帮助,因为事实证明一切正常。
在过去的几个小时中,当我想检查容器日志文件时,我错误地输入了docker run ...
。这将创建一个新的容器。
相反,当我执行以下操作时,确实在/var/log/shiny-server/
中找到了日志文件:
docker exec -ti airsensor-dataviewer-desktop /bin/bash
ls /var/log/shiny-server/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。