首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在GitLab CI上的docker映像中导入django

问无法在GitLab CI上的docker映像中导入django
EN

Stack Overflow用户
提问于 2017-08-21 16:52:04
回答 1查看 2K关注 0票数 2

我尝试在gitlab ci中运行我的django测试python manage.py test。因此,我使用的是docker图像。docker映像可以很好地构建,但当它在gitlab上运行测试时,我会得到ImportError: No module named 'django'和

代码语言:javascript
复制
Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

查看我的.gitlab-ci.yml

代码语言:javascript
复制
image: registry.gitlab.com/app/core:latest
services:
    - postgres:latest
stages:
  - test

variables:
    SECRET_KEY: test-secret
    POSTGRES_DB: ...
    POSTGRES_USER: ...
    POSTGRES_PASSWORD: ...

python_tests:
    stage: test
    before_script:
        - export DATABASE_NAME=...
        - export DATABASE_USER=...
        - export DATABASE_PASSWORD=...
        - export DATABASE_HOST=postgres
        - source /app/venv/bin/activate
    script:
        - python manage.py test

和Dockerfile

代码语言:javascript
复制
FROM ubuntu:16.04

RUN apt-get update -y -qq
RUN apt-get install -y -qq build-essential libffi-dev libpq-dev libfontconfig1
RUN apt-get install -y -qq python3 python3-dev python3-pip
RUN apt-get install -y -qq libpq-dev
RUN apt-get install -y -qq nodejs npm

WORKDIR /app

# pip
COPY requirements.txt /app
RUN pip3 install --upgrade pip
RUN pip3 install virtualenv
RUN virtualenv --no-site-packages venv
RUN . venv/bin/activate
RUN pip3 install -r /app/requirements.txt

# npm
RUN ln -s `which nodejs` /usr/bin/node
COPY web/vueapp/package.json /app
RUN npm install
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 17:59:49

好吧,你的方法有一个问题。考虑一下Dockerfile中的以下RUN语句

代码语言:javascript
复制
RUN . venv/bin/activate
RUN pip3 install -r /app/requirements.txt

上述两个语句都类似于打开两个终端,一个执行. venv/bin/activate,一个pip3 install -r /app/requirements.txt

因此,您的环境将被激活并关闭,然后下一条pip3语句将安装在全局包中。因此,将您的代码更改为以下代码

代码语言:javascript
复制
RUN . venv/bin/activate && pip3 install -r /app/requirements.txt

当脚本运行时,激活环境,然后在没有包的空白虚拟环境中运行python manager.py。因此上述更改应该会为您解决该问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45792913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档