У меня есть работающая служба, работающая на питоне: образ 3.6-jessie.Я пытаюсь уменьшить его размер для ускорения холодного запуска без сервера.
Я пробовал изображения python: 3.6-alpine, python: 3.6-slim-buster и python: 3.6-slim-jessie.
Со всеми из них мне приходится устанавливать много дополнительных пакетов, и я получаю следующую ошибку, которую не могу исправить с помощью других пакетов:
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Мой текущий Dockerfile -
FROM python:3.6-jessie as build
ENV PYTHONUNBUFFERED 0
ENV FLASK_APP "api/app.py"
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
WORKDIR /opt/venv
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
FROM python:3.6-slim-jessie
COPY --from=build /opt/venv /opt/venv
WORKDIR /opt/venv
RUN apt-get update
RUN apt-get --assume-yes install gcc
RUN apt-get --assume-yes install python-mysqldb
ENV PATH="/opt/venv/bin:$PATH"
RUN rm -rf configs tests draw_results env .idea .git .pytest_cache
EXPOSE 8000
CMD ["/opt/venv/run.sh"]
Соответствующие строки из require.txt:
mysqlclient==1.4.2.post1
PyMySQL==0.9.3
Flask-SQLAlchemy==2.3.2
SQLAlchemy==1.3.0
Run.sh - это просто моя команда запуска gunicorn.
Есть ли какой-нибудь пакет, который я могу использовать, чтобы исправить этоПоследняя проблема, есть ли какая-нибудь другая библиотека mysql, которую я должен использовать, или какой-то другой способ исправить это.Или я должен просто придерживаться полного Python: 3,6 изображения, когда я хочу клиента MySQL?