I'm facing with issue when I try to "up" my container on DigitalOcean env. I have Ubuntu Docker 1.7.1 on 14.04 as env droplet. There is the next error.
mysite | ./docker-entrypoint: line 8: exec: gunicorn: not found
This is my Dockerfile where I tried to add gunicorn setup by (apt-get, pip). Sadly but it doesn't work I have the same issue with missed gunicorn module.
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"]
Additionally I tried to add gunicorn setup to the entry point file which also didn't work there is "no gunicorn module" error still. I guess it wasn't a great idea to add it here but anyway I've checked.
Docker entry point
#!/bin/bash
set -e
if [[ -e venv/bin/activate ]]; then
source venv/bin/activate
fi
exec "$@"
docker-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
docker-compose-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
Maybe I need to add gunicorn setup to the bin/install directly (which should be called from source task) but this is also can be found in the requirements.txt EDITED: I've tried to add gunicorn here and it is still
mysite | ./docker-entrypoint: line 8: exec: gunicorn: not found
bin/install
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
Also check my requirements.txt https://gist.github.com/alexnodejs/3789b4eb7621687e010b
Maybe someone already bumped with similar issue with unicorn? Please advise where I should dig.
The main problem I see is that you're using
image: mysitecatalogweb_source
for yourmysite
service, and expecting that to include the committed result of runningbin/install
, which wasn't actually committed to themysitecatalogweb_source
image -- it's sitting in a container instead, so the virtualenv was never created in the secondmysite
container, and is thus not activated andgunicorn
is not available. From just the snippet here, it appears that you ought to addRUN bin/install
to yourDockerfile
so that the virtualenv is set up before the attempt to use it.