簡體   English   中英

docker-compose:嘗試“上載”容器時不使用槍殺

[英]docker-compose: no gunicorn when trying “up” container

當我嘗試在DigitalOcean env上“上載”我的容器時,我遇到了問題。 在14.04上Ubuntu Docker 1.7.1作為env Drop。 下一個錯誤。

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

這是我的Dockerfile,我嘗試通過(apt-get,pip)添加gunicorn設置。 可悲的是,但是它不起作用,我錯過了gunicorn模塊的問題。

Docker文件

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設置添加到入口點文件,該文件也無法正常工作,仍然存在“ no gunicorn module”錯誤。 我想在這里添加它不是一個好主意,但是無論如何我都檢查過。

Docker入口點

#!/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

也許我需要直接將gunicorn安裝程序添加到bin / install中(應該從任務中調用),但這也可以在requirements.txt中找到。 編輯:我試圖在此處添加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

還要檢查我的需求.txt https://gist.github.com/alexnodejs/3789b4eb7621687e010b

也許有人已經為獨角獸遇到了類似的問題? 請告知我應該在哪里挖。

我認為主要的問題是,你正在使用image: mysitecatalogweb_source為您mysite服務,並期望對包括運行的承諾結果bin/install ,這本來就不是致力於mysitecatalogweb_source圖像-這是坐在容器相反,因此virtualenv從未在第二個mysite容器中創建,因此無法激活, gunicorn無法使用gunicorn 僅從這里的片段看來,您應該將RUN bin/install添加到Dockerfile以便在嘗試使用virtualenv之前對其進行設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM