码头工人-Flask Python错误

时间:2018-12-02 14:28:51

标签: python docker flask

我正在尝试使用docker为我的flask应用程序部署创建映像。我认为我已经成功创建了docker文件,如下所示:

FROM python:3.6-alpine

RUN adduser -D microblog

WORKDIR /Users/pangkachun/Desktop/New_Blog

COPY requirements.txt requirements.txt
RUN python -m venv venv
RUN venv/bin/pip install -r requirements.txt
RUN venv/bin/pip install gunicorn

COPY app app
COPY migrations migrations
COPY microblog.py config.py boot.sh ./
RUN chmod +x boot.sh

ENV FLASK_APP microblog.py

RUN chown -R microblog:microblog ./
USER microblog

EXPOSE 5000
ENTRYPOINT ["./boot.sh"]

和boot.sh如下:

#!/bin/sh
source venv/bin/activate
flask db upgrade

exec gunicorn -b :5000 --access-logfile - --error-logfile - microblog:app

但是,发生以下错误:

“”“ 命令“ python setup.py egg_info”在/ tmp / pip-install-n8a9ohsg / cffi /中失败,错误代码为1 您正在使用pip版本10.0.1,但是可以使用版本18.1。 您应该考虑通过“ pip install --upgrade pip”命令进行升级。 “”“

我已经检查了我的pip和cffi,它们已经是最新的了。有人说这是因为我的某些项目依赖项是C依赖的,但是我却没有C编译器。我的requirements.txt如下

alembic==1.0.0
amqp==2.2.2
anyjson==0.3.3
Babel==2.6.0
beautifulsoup4==4.6.0
billiard==3.5.0.3
blinker==1.4
celery==4.1.0
certifi==2018.4.16
cffi==1.11.5
chardet==3.0.4
click==6.7
DateTime==4.2
Django==2.0.3
django-adaptors==0.2.5
django-bootstrap3==10.0.1
django-braces==1.13.0
django-celery==3.2.2
django-celery-results==1.0.1
dominate==2.3.4
elasticsearch==6.3.1
fake-useragent==0.1.10
Flask==0.12.2
Flask-Babel==0.11.2
Flask-Bootstrap==3.3.7.1
Flask-HTTPAuth==3.2.4
Flask-Login==0.4.1
Flask-Mail==0.9.1
Flask-Migrate==2.2.1
Flask-Moment==0.6.0
Flask-SocketIO==3.0.0
Flask-SQLAlchemy==2.3.2
Flask-WTF==0.14.2
guess-language-spirit==0.5.3
gunicorn==19.9.0
httpie==1.0.0
idna==2.6
itsdangerous==0.24
Jinja2==2.9.6
kombu==4.1.0
lxml==4.1.1
Mako==1.0.7
MarkupSafe==1.0
misaka==2.1.0
numpy==1.13.1
opencv-python==3.2.0.8
pandas==0.22.0
pycparser==2.18
Pygments==2.2.0
PyJWT==1.6.4
python-dateutil==2.6.1
python-dotenv==0.9.1
python-editor==1.0.3
python-engineio==2.3.2
python-socketio==2.0.0
pytz==2018.3
redis==2.10.6
requests==2.18.4
rq==0.12.0
selenium==3.12.0
six==1.11.0
SQLAlchemy==1.2.12
urllib3==1.22
vine==1.1.4
virtualenv==15.1.0
visitor==0.1.3
Werkzeug==0.12.2
WTForms==2.2.1
yandex.translate==0.3.5
zope.interface==4.4.3

任何人都可以提出问题吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为错误消息看起来很容易解释。只需升级pip内部的Dockerfile

RUN pip install --upgrade pip

RUN python -m pip install --upgrade pip

在大多数Python版本中,pip并不是最新版本,需要手动升级,而我没有在您的pip中看到Dockerfile升级代码

也请尝试安装gcc-一些Python软件包需要编译,并且默认情况下alpine-python没有gcc

RUN apk add -y gcc