使用dockerfile在virtualenv中安装django时出错

时间:2018-03-08 08:33:22

标签: python django docker

FROM webdevops/base:ubuntu-16.04

RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-  recommends \ 
    apache2 \
    openssh-client \
    python3 \
    python3-dev \
    python3-venv \
    python3-psycopg2 \
    python3-pip \
    pyflakes3 \
    pylint3 \
    pep8 \
    pep257 \
    postgresql-client \
    libapache2-mod-wsgi-py3 \
    && apt-get clean \
    && rm -fr /var/lib/apt/lists/*

RUN mkdir /var/www/html/hotels-project
RUN cd /var/www/html/hotels-project/ \
   && python3 -m venv hotels-venv \
   && /bin/bash -c "source hotels-venv/bin/activate" 

RUN pip install 'django<2.0'
RUN pip install requests
RUN pip install psycopg2

显示消息:

  

错误:服务&#39; apache-python&#39;无法构建:命令&#39; / bin / sh   -c pip install&#39; django&lt; 2.0&#39;&#39;返回非零代码:127

1 个答案:

答案 0 :(得分:0)

您的泊坞窗文件中有两个问题。

  • 使用pip代替pip3
  • 一步激活virtualenv并在另一步骤中运行命令

在每个RUN步骤的Dockerfile中,您将获得一个新的终端。因此,您在之前的source语句中执行的任何RUN命令都不再有效。

所以你的代码应该是这样的

RUN cd /var/www/html/hotels-project/ \
   && python3 -m venv hotels-venv \
   && /bin/bash -c "source hotels-venv/bin/activate" \
   && pip3 install -r requirements.txt

requirements.txt应低于内容

django<2.0
requests==X.XX
psycopg2==y.yy

你应该怎么做