gpt4 book ai didi

django - docker-compose:尝试 "up"容器时没有 gunicorn

转载 作者:IT老高 更新时间:2023-10-28 21:39:51 27 4
gpt4 key购买 nike

当我尝试在 DigitalOcean 环境中“升级”我的容器时遇到问题。我有 Ubuntu Docker 1.7.1 on 14.04 作为 env droplet。还有下一个错误。

我的网站 | ./docker-entrypoint: line 8: exec: gunicorn: not found

这是我尝试通过 (apt-get, pip) 添加 gunicorn 设置的 Dockerfile。可悲的是,但它不起作用我有同样的问题,错过了 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 "$@"

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 中(应该从 source 任务中调用)但这也可以在 requirements.txt EDITED: 我已经尝试在这里添加 gunicorn 并且它仍然是我的网站 | ./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

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

也许有人已经遇到过与 unicorn 类似的问题?请告知我应该在哪里挖掘。

最佳答案

我看到的主要问题是您将 image: mysitecatalogweb_source 用于您的 mysite 服务,并期望它包含运行 bin 的提交结果/install,它实际上并没有提交给 mysitecatalogweb_source 图像——而是位于一个容器中,因此 virtualenv 从未在第二个 mysite 中创建容器,因此未激活且 gunicorn 不可用。从这里的片段来看,您应该将 RUN bin/install 添加到您的 Dockerfile 以便在尝试使用它之前设置 virtualenv。

关于django - docker-compose:尝试 "up"容器时没有 gunicorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541581/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com