У меня есть приложение на фляге Python, которое я хочу развернуть на сервере Ubuntu с помощью Docker.
Итак, я перенес всю папку с приложениями в каталог Ubuntu.
Затем с пользователем root я пытаюсь создать файл dockerfile в папке приложения, как показано ниже:
# Docker file for Support
# Pulling from base Python image
FROM python:3.7
# author of file
LABEL maintainer="Baktaawar"
# Set the working directory of the docker image
WORKDIR /support
COPY . /support
# packages that we need
RUN apt-get update \
&& apt-get install build-essential
RUN pip --no-cache-dir install -r requirements.txt
EXPOSE 8888
CMD ["python", "index.py"]
Файл needs.txt - это список пакетов conda env, экспортированных через
pip freeze> requirments.txt
Это пакеты в этом.
thinc==6.10.2
cytoolz==0.8.2
msgpack-numpy==0.4.1
msgpack-python==0.5.6
pathlib==1.0.1
termcolor==1.1.0
ujson==1.35
spacy==2.0.11
dash==0.26.2
dash-core-components==0.30.0rc1
dash-dangerously-set-inner-html==0.0.1
dash-html-components==0.11.0
dash-renderer==0.13.1
Flask==0.12.2
Flask-Compress==1.4.0
HTMLParser==0.0.2
matplotlib==2.1.2
matplotlib-venn==0.11.5
numpy==1.15.2
pandas==0.20.3
plotly==3.1.1
wordcloud==1.5.0
Но когда я запускаю это через
docker build -t support .
Запускается установка, но в самом конце выдает ошибку cytoolz и gcc error.
Я установил gcc через build-essential, как показано в моем dockerfile. Также используйте 3.7 вместо python3.6-slim, чтобы избежать других проблем с gcc.
tstate->exc_type = local_type;
^~
cytoolz/dicttoolz.c:9126:11: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
tstate->exc_value = local_value;
^~
cytoolz/dicttoolz.c:9127:11: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tstate->exc_traceback = local_tb;
^~
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-oprwuva4/cytoolz/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-s_ua1t8c/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-oprwuva4/cytoolz/
The command '/bin/sh -c pip --no-cache-dir install -r requirements.txt' returned a non-zero code: 1