Как исправить установку python -dev в Docker Linuxkit? - PullRequest
0 голосов
/ 18 июня 2020

У меня в Dockerfile довольно сложный стек. Мне нужно разрешить gcc доступ к заголовкам Python для pip, чтобы установить библиотеку (py-lmdb), которая имеет зависимость CPython, которую необходимо построить. К сожалению, дистрибутив Linuxkit не включает заголовки Python. gcc правильно ( проверьте список файлов здесь ), указывая на каталог /usr/include/python3.7m/, но когда я попытался проверить, есть ли там файлы, я заметил, что такой каталог не существует. Я считаю, что другие файлы зависят от python3.7 lib, поскольку python3 .7 правильно установлен и работает безупречно.

Сохраняются только файлы, которые apt-get install libpython3.7-dev:

/usr/bin/x86_64-linux-gnu-python3.7-config
/usr/bin/x86_64-linux-gnu-python3.7m-config
/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu/makesetup
/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu/python-config.py
/usr/lib/python3.7/config-3.7m-x86_64-linux-gnu/python.o
/usr/lib/x86_64-linux-gnu/libpython3.7m.a
/usr/lib/x86_64-linux-gnu/libpython3.7m.so
/usr/lib/x86_64-linux-gnu/pkgconfig/python-3.7.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/python-3.7m.pc
/usr/share/doc/libpython3.7-dev

Я использую многоступенчатую сборку, которая:

FROM maven:slim as builder
...
FROM tomcat:8.5.53-jdk11-openjdk-slim
...

Также:

uname -a
Linux b5038a670622 4.19.76-linuxkit #1 SMP Fri Apr 3 15:53:26 UTC 2020 x86_64 GNU/Linux

apt-get install libpython3.7-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libpython3.7-dev is already the newest version (3.7.3-2+deb10u1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Я хотел бы понять причину root этого, чтобы не запускать снова та же проблема. Это было особенно ошеломляющим опытом, так как шесть дней работы привели к сбою последней функции, для которой требовалось py-lmdb (мы создаем сложную систему машинного обучения ie для обучения в AWS Batch Job). У нас есть альтернативная стратегия для создания этого образа на основе Ubuntu, но я хотел бы разобраться в проблеме здесь, чтобы сделать более обоснованные предположения о выборе между базовыми образами; некоторые люди говорят, что ubuntu по-прежнему более стабилен / лучше документирован / часто задаваемый для облачных вычислений, некоторые говорят, что не должно быть никакой разницы. скажете, что libpython3.7-dev установлен правильно, но в нем нет большинства файлов?

...