Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行运行python程序的shell脚本,然后运行R程序_Python_R_Bash_Docker - Fatal编程技术网

运行运行python程序的shell脚本,然后运行R程序

运行运行python程序的shell脚本,然后运行R程序,python,r,bash,docker,Python,R,Bash,Docker,我有一个shell脚本,它运行一个Python程序来预处理一些数据,然后运行一个R程序来执行一些长时间运行的任务。我正在学习使用Docker,我一直在跑步 FROM r-base:latest FROM python COPY . /usr/local/src/scripts WORKDIR /usr/local/src/scripts CMD ["./myscript.sh"] 据我所知,它的作用如下: 得到R 获取Python 将我的当前目录复制到/usr/local/src/script

我有一个shell脚本,它运行一个Python程序来预处理一些数据,然后运行一个R程序来执行一些长时间运行的任务。我正在学习使用Docker,我一直在跑步

FROM r-base:latest
FROM python
COPY . /usr/local/src/scripts
WORKDIR /usr/local/src/scripts
CMD ["./myscript.sh"]
据我所知,它的作用如下:

  • 得到R
  • 获取Python
  • 将我的当前目录复制到
    /usr/local/src/scripts
  • 将目录更改为
    /usr/local/src/scripts
  • 运行
    /myscript.sh
  • myscript.sh
    中,我使用
    R CMD…
    语法来运行我的R脚本。但是,当运行此docker映像时,我会出现以下错误:

    ./myscript.sh: line 8: R: command not found
    

    这表明脚本在容器内运行时,无法识别R程序。我可以确认
    /myscript.sh
    在本地工作,但我不能公开任何专有代码。

    FROM命令设置Dockerfile构建的基础映像。你应该只有一个。之后,如果需要不在基本映像中的其他工具,请运行使用依赖于平台的包管理器的命令,例如

    RUN apt-get update && apt-get install -y \
        package-foo \
        package-bar
    

    这将适用于基于Debian的图像,如Ubuntu。

    非常感谢!我有以下几点:1。Docker容器使用的默认操作系统是什么?2.如果我有多个图像,安装多个Ubuntu会不会占用很多空间?容器使用哪个操作系统取决于你。对于许多用例来说,Ubuntu是一个很好的默认基本映像:从Ubuntuf到您的第二个问题,这些映像占用的空间非常小。可以将它们视为脑叶图像,它们与主机系统(您的计算机)共享大量资源,并从头构建为轻量级。与虚拟机不同,在许多情况下,您甚至不会注意到图像占用的空间。如果你认为我的答案有帮助,别忘了接受它!:)