在哪里运行';主要';Dockercontainer的脚本
请原谅这个更基本的问题。我正在处理Docker映像,它运行时的唯一目的是执行一个名为ga_extract.R的脚本。我对应该在哪里运行这个命令以及如何运行感到困惑 我有一个Dockerfile:在哪里运行';主要';Dockercontainer的脚本,docker,docker-compose,Docker,Docker Compose,请原谅这个更基本的问题。我正在处理Docker映像,它运行时的唯一目的是执行一个名为ga_extract.R的脚本。我对应该在哪里运行这个命令以及如何运行感到困惑 我有一个Dockerfile: FROM rocker/tidyverse:latest ADD install_packages.R /tmp/install_packages.R RUN apt-get update && apt-get install -y \ less \ vim &
FROM rocker/tidyverse:latest
ADD install_packages.R /tmp/install_packages.R
RUN apt-get update && apt-get install -y \
less \
vim && \
Rscript /tmp/install_packages.R && \
rm -R /tmp/*
但据我所知,Dockerfile只与容器的构建相关,即设置?我会尝试在Dockerfile中运行我的Rscript吗?尝试在末尾添加此行,但没有发生任何事情,脚本没有执行CMD Rscript ga_extract.R
我还有一个docker compose文件,如下所示:
version: "3.5"
services:
ga_extract_marketing:
build:
context: .
environment:
start_date: "2020-11-13"
start_date: "2020-11-13"
ENTRYPOINT ["Rscript", "ga_extract.R"]
惯例是在docker compose中的某个地方运行我的rscript吗?我想这正是我想要的,但我不确定怎么做。我读了一些关于ENTRYPOINT Vs.CMD的博客,但我有点不确定
如果运行容器的全部目的是使用Rscript ga_extract.R
每天执行一次ga_extract.R
,那么“正确”的方法是什么
请注意,docker compose中的env变量(这两个日期)是运行R脚本所必需的。那么从操作顺序来看,脚本必须在docker compose运行期间或之后调用
我也尝试了以下方法:
在Dockerfile中,我添加了ENTRYPOINT[“Rscript ga_extract.R”]
,但这给出了一个错误:
ERROR: for ga_extract_marketing Cannot start service ga_extract_marketing: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"Rscript ga_extract.R\": executable file not found in $PATH": unknown
ga_extract.R位于根目录中。我还尝试将入口点更改为docker entrypoint.sh
,然后在docker entrypoint.sh
中放入Rscript ga_extract.R
,但我得到了类似的错误
即使该命令被识别,我也不确定它是否能工作,因为我无法判断docker compose中的env变量是否在脚本运行之前设置好。我使用以下命令运行容器:
docker-compose build
docker-compose up -d
在运行最后一个命令之后,我得到了错误
更一般地说,我只是对正确的方法感到困惑。如何运行Rscript ga_extract.R?您的入口点缺少一个逗号 试着这样做:
version: "3.5"
services:
ga_extract_marketing:
build:
context: .
environment:
start_date: "2020-11-13"
start_date: "2020-11-13"
ENTRYPOINT ["Rscript", "ga_extract.R"]
应该在运行时提取环境变量。您的入口点缺少一个逗号 试着这样做:
version: "3.5"
services:
ga_extract_marketing:
build:
context: .
environment:
start_date: "2020-11-13"
start_date: "2020-11-13"
ENTRYPOINT ["Rscript", "ga_extract.R"]
应在运行时提取环境变量