我有一个如下所示的dockerfile
但是当我运行它并检查日志时,它说“ ARGUMENT'plumber_2.R'忽略”。我也尝试过使用不同的端口。
我尝试了不同的端口,但是失败了
FROM r-base:3.5.1
# Install Ubuntu packages
RUN apt-get update && apt-get install -y \
sudo \
gdebi-core \
pandoc \
pandoc-citeproc \
libcurl4-gnutls-dev \
libcairo2-dev/unstable \
libxt-dev \
libssl-dev
## RUN R -e 'install.packages(c("devtools"))'
## RUN R -e 'devtools::install_github("trestletech/plumber")'
#
RUN install2.r plumber
RUN R -e "install.packages(c('MLmetrics','datasets','tsDyn','ggplot2','zoo','forecast'), repos='http://cran.rstudio.com/')"
WORKDIR /usr/plumberR
COPY . /usr/plumberR
RUN sudo apt-get install curl
EXPOSE 8000
ENTRYPOINT ["R", "-e", "pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000)"]
CMD ["plumber_2.R"]
expected is the output but I am getting "ARGUMENT ["plumbr_2.R"] __ignored__
答案 0 :(得分:0)
您的第三个ENTRYPOINT
参数破坏了序列。应该用其他引号引起来,但是很遗憾,您在内部将单引号用于主机说明。
如果您不打算在以后对CMD
的调用中覆盖docker run
,则可以避免在ENTRYPOINT/CMD
中使用JSON模式,并使用类似以下内容的方法:
ENTRYPOINT R -e pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000) plumber_2
将第三个参数放在单引号中,并以某种方式避免将其用于热门规范:
"'pr <- plumber::plumb(commandArgs()[4]); pr$run(port=8000)'"