首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >容器多级构建--无缺陷的pyrender

容器多级构建--无缺陷的pyrender
EN

Stack Overflow用户
提问于 2022-02-20 17:15:28
回答 1查看 335关注 0票数 0

我有下面的多阶段构建,以将pyrender添加到一个无差异的连续中

代码语言:javascript
运行
复制
FROM debian:11-slim as build
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && \
    apt-get install --no-install-suggests --no-install-recommends --yes python3-venv gcc libpython3-dev \
    wget git ca-certificates python python3-pip libglu1-mesa-dev freeglut3-dev && \
    python3 -m venv /venv && \
    /venv/bin/pip install --upgrade pip setuptools wheel

RUN /venv/bin/pip install pyrender pyopengl PyOpenGL_accelerate

FROM gcr.io/distroless/python3-debian11

COPY --from=build /usr/lib /usr/lib
COPY --from=build /usr/include /usr/include
COPY --from=build /venv /venv

如果我在debian:11-slim中运行pyrender,它会很好地工作,但是当我将库移动到distroless并尝试运行import pyrender时,我得到

代码语言:javascript
运行
复制
File "/venv/lib/python3.9/site-packages/OpenGL/platform/glx.py", line 20, in GL
    raise ImportError("Unable to load OpenGL library", *err.args)
ImportError: ('Unable to load OpenGL library', 'GL: cannot open shared object file: No such file or directory', 'GL', None)

代码语言:javascript
运行
复制
File "/venv/lib/python3.9/site-packages/pyrender/platforms/egl.py", line 83, in get_device_by_index
    raise ValueError('Invalid device ID ({})'.format(device_id, len(devices)))
ValueError: Invalid device ID (0)

我确实将env变量设置为os.environ['PYOPENGL_PLATFORM'] = 'egl'

对我做错了什么有什么建议吗?我想运行它与不讨厌,而不是debian的形象。

EN

Stack Overflow用户

回答已采纳

发布于 2022-02-20 20:05:08

加上这些解决了我的问题,

代码语言:javascript
运行
复制
COPY --from=build /usr/bin /usr/bin
COPY --from=build /usr/lib /usr/lib
COPY --from=build /usr/share /usr/share
COPY --from=build /usr/local /usr/local

虽然/usr/bin添加了一些我不需要在最终图像中烘焙的东西。然而,我不知道哪一个确切的可执行文件是需要的。如果有人知道,请评论。现在,这解决了我的问题,而没有大规模膨胀的最终形象。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71196831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档