2016-11-16 47 views
0

使用Docker的Django應用程序需要安裝rpy2作爲依賴項。雖然我安裝R基本容器,並將其指定爲依賴,安裝Django的需求時,我不斷收到:使用Docker安裝rpy2無法找到R路徑

Collecting rpy2==2.8.3 (from -r /requirements/base.txt (line 55)) 
    Downloading rpy2-2.8.3.tar.gz (186kB) 
    Complete output from command python setup.py egg_info: 
    Error: Tried to guess R's HOME but no command 'R' in the PATH. 

如何可以在裏面泊塢指定將R路徑是什麼?

我server.yml看起來是這樣的:

version: '2' 
services: 

    r: 
    build: ./services/r 

    django: 
    build: 
     context: ./myproject/ 
     dockerfile: ./compose/django/Dockerfile 
    env_file: 
     - .env 
     - .env-server 
    environment: 
     - DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_USER} 
    depends_on: 
     - postgres 
     - r 
    command: /gunicorn.sh 
    volumes: 
     - ./myproject:/app 

的Dockerfile Django的是:

FROM python:2.7 
ENV PYTHONUNBUFFERED 1 

COPY ./requirements /requirements 

RUN pip install -r /requirements/production.txt \ 
    && pip install -r /requirements/test.txt \ 
    && groupadd -r django \ 
    && useradd -r -g django django 

COPY . /app 
RUN chown -R django /app 

COPY ./compose/django/gunicorn.sh /gunicorn.sh 
COPY ./compose/django/entrypoint.sh /entrypoint.sh 
RUN sed -i 's/\r//' /entrypoint.sh \ 
    && sed -i 's/\r//' /gunicorn.sh \ 
    && chmod +x /entrypoint.sh \ 
    && chown django /entrypoint.sh \ 
    && chmod +x /gunicorn.sh \ 
    && chown django /gunicorn.sh 

WORKDIR /app 

ENTRYPOINT ["/entrypoint.sh"] 

的Dockerfile爲R是:

FROM r-base 

回答

0

很容易,只需將r安裝在django容器中。所以濾除紅色容器和modifiying Django的泊塢窗文件中添加此行,奮力:

RUN apt-get --force-yes update \ 
    && apt-get --assume-yes install r-base-core