我有一個結合了一些R代碼的rails應用程式。它運行良好,現在是時候將其dockerize。我試著在 ruby 鏡像的基礎上創建 docker,但未能正確安裝 R,然后以另一種方式(R 鏡像,使用 rbenv 安裝 ruby,如這里),但也失敗了。
有人對這種組合有經驗嗎?
編輯:我已經設法使用 R 鏡像創建了一個 docker,但是這需要安裝許多 ruby 依賴項,非常累人。因此,請考慮這一方面的作業。
但是,為什么另一種方法(在 ruby 鏡像上安裝 R)不能作業?
基于Ruby:
FROM ruby:2. 7.1 as rails-toolbox
運行apt-get update -qq & & apt-get install -Y build-essential libpq-dev nodejs
RUN mkdir /app
WORKDIR /app
ADD shalev/Gemfile /app/Gemfile
ADD shalev/Gemfile.lock /app/Gemfile.lock
RUN bundle install --without development test doc --jobs=4
RUN apt-get install -Y apt-utils
運行apt-get install -y apt-transport-https
RUN wget -qO-https://cloud.r-project。 org/bin/linux/ubuntu/marutter_pubkey. asc | tee -a /etc/apt/trusted. gpg.d/cran_ubuntu_key.asc
RUN echo "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/" | tee -a /etc/apt/sources.list
RUN apt-get update
RUN apt-get install r-base
COPY shalev/ / app/
[...]
錯誤資訊:
Step 13/20 : RUN apt-get install r-base
--> 運行in f546cfe57d33
讀取軟體包串列...
構建依賴關系樹...
讀取狀態資訊...
一些軟體包可能沒有被安裝。這可能意味著你已經
請求一個不可能的情況 或者 如果你使用不穩定的
分發版時,一些所需的軟體包還沒有創建。
或被移出的Incoming。
以下資訊可能有助于解決這種情況。
以下軟體包有未滿足的依賴性。
r-base : 依賴于:r-base-core (>= 3.6。 3-1bionic),但它是不會被安裝
依賴: r-recommended (= 3.6. 3-1bionic),但它是 不會被安裝
推薦:r-base-html,但它是 不將安裝。
E: Unable to correct problems, you have held broken packages.
命令'/bin/sh -c apt-get install r-base'回傳一個非零代碼。100
基于R:
FROM rocker/r-ver:3.6.3
RUN apt-get update -qq && apt-get install -y apt-utils apt-transport-https build-essential libpq-dev nodejs
運行 apt-get install -y git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-perties-common libffi-dev nodejs yarn curl bzip2
運行git clone https://github.com/rbenv/rbenv.git ~/.rbenv
&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"'/span> >> ~/.bashrc
&& echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ENV HOME /home/shalev
ENV PATH "$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"/span>
ENV RUBY_VERSION 2.7.1。
RUN mkdir -p "$(rbenv root)"/plugins
&& git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build。
運行rbenv安裝$RUBY_VERSION。
RUN rbenv global $RUBY_VERSION && rbenv versions & & ruby -v
RUN mkdir /app
[...]
錯誤資訊:
Step 9/25 : RUN rbenv install $RUBY_VERSION
---> 運行中 在 9939299d6ed1
/bin/sh: 1: rbenv: not found
uj5u.com熱心網友回復:
你可以使用獨立版本的ruby-build。
注意,你是root而不是shalev在容器內:
FROM rocker/r-ver:3.6.3.
運行 apt-get update -qq &&。
apt-get install -y
apt-utils apt-transport-https
build-essential libpq-dev nodejs
RUN apt-get install -y
git-core zlib1g-dev build-essential
libssl-dev libreadline-dev libyaml-dev
libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev
libcurl4-openssl-dev software-properties-common
libffi-dev nodejs yarn curl bzip2
運行git clone https://github.com/rbenv/rbenv.git ~/.rbenv
&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"'/span> >> ~/.bashrc
&& echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ENV PATH "/root/.rbenv/bin/:/root/.rbenv/shims/:$PATH"/span>
ENV RUBY_VERSION 2.7.1。
運行git clone https://github.com/rbenv/ruby-build.git & &
PREFIX=/usr/local ./ruby-build/install.sh
RUN rbenv install $RUBY_VERSION &&
rbenv global $RUBY_VERSION & &
rbenv版本
RUN mkdir /app
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/323826.html
標籤:
