我有一个postgres Dockerfile,完全正常。我设法通过Dockerfile在映像中安装R-3.3.3,并发现这个容器正常工作。但是,当我尝试通过以下条目安装软件包时,映像创建成功,但是它的容器立即以正常状态退出。以下是我添加的新条目,它们改变了行为。我错过了什么?
RUN R -e "install.packages('devtools',repos='http://cran.us.r-project.org')"
&& R -e "install.packages('RPostgreSQL',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('hash',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('nloptr',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('DBI',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('Rcpp',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('BH',repos='http://cran.us.r-project.org')"
答案 0 :(得分:0)
这一切都很好。 Docker文件有些不正确。我把它们放在一起后,一切都开始正常了。
RUN apt-get install -y --auto-remove \
default-jdk \
libcurl4-openssl-dev \
build-essential \
gfortran \
zlib1g \
zlib1g-dev \
libbz2-dev \
liblzma-dev \
libpcre3-dev \
postgresql-9.6-plr \
libpq-dev \
libssl-dev \
&& LD_LIBRARY_PATH=/usr/lib/apt/methods/bzip2 apt-get -y install wget \
&& wget -O /R-3.3.3.tar.gz https://cran.r-project.org/src/base/R-3/R-3.3.3.tar.gz \
&& cd / \
&& gunzip /R-3.3.3.tar.gz \
&& tar xvf R-3.3.3.tar \
&& cd R-3.3.3 \
&& ./configure --prefix=/usr --with-readline=no --with-x=no \
&& make \
&& make install \
&& R -e "install.packages('devtools',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('RPostgreSQL',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('hash',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('nloptr',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('DBI',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('Rcpp',repos='http://cran.us.r-project.org')" \
&& R -e "install.packages('BH',repos='http://cran.us.r-project.org')" \
&& cd .. \
&& rm R-3.3.3.tar \
&& rm -rf R-3.3.3 \
&& apt purge -y --auto-remove \
default-jdk \
libssl-dev \
libpq-dev \
libpcre3-dev \
liblzma-dev \
libbz2-dev \
zlib1g-dev \
libcurl4-openssl-dev \
build-essential \
wget \
&& rm -f /tmp/Rtmp* \
&& apt-get -y autoremove