docker-compose:尝试“up”容器时没有gunicorn

当我尝试在DigitalOcean env上“升起”我的容器时,我遇到了问题。 我在14.04上使用Ubuntu Docker 1.7.1作为env液滴。 有下一个错误。

mysite | ./docker-entrypoint: line 8: exec: gunicorn: not found

这是我的Dockerfile,我尝试通过(apt-get,pip)添加gunicorn设置。 可悲的是,但它不起作用我错过了gunicorn模块有同样的问题。

Dockerfile

 FROM python:2.7.7 RUN curl -sL https://deb.nodesource.com/setup | bash - RUN apt-get -y install nodejs RUN apt-get -y install libpango1.0-0 libgdk-pixbuf2.0-0 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY . /usr/src/app VOLUME /usr/src/app/venv VOLUME /usr/src/app/node_modules VOLUME /usr/src/app/static ENTRYPOINT ["./docker-entrypoint"] 

此外,我试图添加gunicorn安装到入口点文件,也没有工作,仍然是“没有gunicorn模块”错误。 我想这不是一个好主意,但是无论如何,我已经检查过了。

Docker入口点

 #!/bin/bash set -e if [[ -e venv/bin/activate ]]; then source venv/bin/activate fi exec "$@" 

泊坞窗,compose.yml

 source: extends: file: docker-compose-common.yml service: prod build: . command: bin/install redis: image: redis:latest command: redis-server --appendonly yes mysite: extends: file: docker-compose-common.yml service: prod image: mysitecatalogweb_source volumes_from: - source environment: - SITE_ID=1 command: gunicorn -k gevent -b 0.0.0.0:8000 --access-logfile - --error-logfile - mysite.wsgi 

搬运工-撰写-common.yml

 dev: environment: - PYTHONUNBUFFERED=1 - ENV=DEV - POSTGRES_HOST=host - POSTGRES_USER=user env_file: dev.env prod: environment: - ENV=PROD env_file: prod.env 

也许我需要直接添加gunicorn安装到bin / install(这应该从源码任务中调用),但是这也可以在requirements.txt中find编辑:我试图在这里添加gunicorn,它仍然是mysite | ./docker-entrypoint: line 8: exec: gunicorn: not found mysite | ./docker-entrypoint: line 8: exec: gunicorn: not found

斌/安装

 set -e pip install virtualenv if [[ ! -e venv/bin/activate ]]; then virtualenv venv source venv/bin/activate fi pip install -r requirements.txt mkdir -p static/js npm install npm run browserify 

另请检查我的requirements.txt https://gist.github.com/alexnodejs/3789b4eb7621687e010b

也许有人碰到与独angular兽类似的问题? 请告诉我应该在哪里挖。

我看到的主要问题是,您正在使用image: mysitecatalogweb_source作为您的mysite服务,并期待包含运行bin/install的提交结果,而实际上并未提交到mysitecatalogweb_source图像 – 它坐在一个容器相反,所以virtualenv从来没有在第二个mysite容器中创build,因此没有激活, gunicorn不可用。 从这里的代码片断看来,您应该将RUN bin/install添加到您的Dockerfile以便在尝试使用virtualenv之前设置virtualenv。