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

时间:2016-03-10 21:30:48

标签: 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"]

根据我的理解,它会做到以下几点:

  1. 获取R
  2. 获取Python
  3. 将我当前的目录复制到/usr/local/src/scripts
  4. 将目录更改为/usr/local/src/scripts
  5. 运行./myscript.sh
  6. myscript.sh内部我使用R CMD ...语法来运行我的R脚本。但是,当运行此docker镜像时,我收到以下错误:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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