问题标签 [distroless]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 尝试将现有 docker 文件转换为使用 distroless 映像时出现 pip 错误
我有一个dockerfile
我正在使用python:3.9.2-slim-buster
的基础图像,我正在做以下事情。
我想将其转换为使用 distroless 映像。我试过但它不起作用。我找到了这些资源
- https://github.com/GoogleContainerTools/distroless/blob/main/examples/python3/Dockerfile
- https://www.abhaybhargav.com/stories-of-my-experiments-with-distroless-containers/
我知道这是不正确的,但这是我在遵循这些资源后想出的
它给出了以下错误:
我也想过进入RUN pip install SomePackage
第一阶段,但不知道该怎么做。
任何帮助,将不胜感激。谢谢
编辑:
docker images
输出
pyenchant - ImportError:未找到“附魔”C 库,可能需要安装
我正在尝试使用 gcr.io./distroless/python3-debian10 使用基本映像作为 debian:buster-slim 创建一个无发行版容器
我已经在基础镜像的 python 虚拟环境中安装了 enchant,然后我将虚拟环境复制到了 distroless 镜像,但是附魔库文件没有被复制到 distroless 容器中。
在调试时我发现,附魔已正确安装在基础映像容器中并且工作正常,但它没有反映在 distroless 容器中。
这是错误消息:
我从错误消息中转到了这个建议的 url(https://pyenchant.github.io/pyenchant/install.html),因为他们已经指定安装已经安装的 pyenchant。而且我还安装了 libenchant,附魔。
这是供参考的代码:
注意:我在 requirements.txt 文件中包含了 pyenchant(version :3.2.1)
python - 将 jdk 与 python venv 集成
我正在尝试在我的应用程序的无发行版 docker 容器上将 jdk 与 python venv 集成
我无法在 distroless 容器中创建的 venv 中导入 java 模块
如何将 jdk 模块导出到 distroless 容器中,以便应用程序正常工作
这是我在运行应用程序时遇到的错误
java - 在 distroless 环境中将可自定义的选项传递给 GraalVM 映像执行
对于上下文,我正在构建一个编译为 GraalVM 本机映像的 Java 应用程序,该映像在 Kubernetes 中的无发行版 docker映像上运行。
我一直在尝试做一些相当简单的事情并碰壁:我想通过-XmxNNN
. 为此,我想用来运行应用程序的选项将保存在环境变量中。问题的出现是由于使用了 distroless 映像 - 它没有 bash,因此ENTRYPOINT /application $OPTIONS
不起作用。
是否有 GraalVM 本身支持的环境变量,或任何其他设置方式?
我不想:
- 对 Docker 映像中的值进行硬编码
- 通过在本机映像构建期间预定义值来硬编码这些值
docker - What is the value of $JAVA_HOME with gcr.io/distroless/java?
What is the value of $JAVA_HOME with gcr.io/distroless/java
images?
kubernetes - 如何在 kubernetes 上运行的 distroless 容器上进行 java 应用程序的线程转储?
我的集群上运行了许多 java 应用程序,我想为几个微服务进行线程转储。但由于这些是无发行映像,我在考虑临时容器,但不确定是否可以将卷附加到此类容器。有人可以帮忙吗?
问候, 安贾尼
python - 用于 distroless 的 pyrender 容器多阶段构建
我有以下多阶段构建将 pyrender 添加到 distroless continer
如果我在里面运行 pyrenderdebian:11-slim
它一切正常但是当我将库移动到 distroless 并尝试运行时import pyrender
我得到
或者
我确实将环境变量设置为os.environ['PYOPENGL_PLATFORM'] = 'egl'
关于我做错了什么的任何指示?我想用 distroless 而不是 debian 映像运行它。
docker - 为什么将多阶段 Docker 构建中的基本映像从 distroless 切换到 alpine 会导致“exec 用户进程导致:没有这样的文件或目录”?
我正在按照https://docs.docker.com/language/golang/build-images/上的指南学习为 Go 应用程序进行多阶段 Docker 构建的最佳方法。我克隆了回购:
我在指南底部附近运行了命令来构建图像:
我还运行了自己的命令来从映像运行临时容器:
这工作得很好。我在终端中看到了应用程序的输出。但是,我想将第二层图像从指南 ( gcr.io/distroless/base-debian10
) 中的 Distroless 图像切换到alpine:3
. 当我进行更改、构建新映像并尝试使用上面的相同命令运行新映像时,我收到有关用户不存在的错误:
这对我来说很有意义。听起来 Distroless 映像有该用户,而 Alpine 映像没有。所以我USER nonroot:nonroot
从 Dockerfile 中删除了。所以此时,我的 Dockerfile 的后半部分如下所示:
然后我构建了一个新图像并尝试使用上面的相同命令运行新图像。这一次,我收到以下错误:
我无法解决此错误。为什么以这种方式切换我的基本图像会导致此错误?
java - gcr.io/distroless/java-debian10:11 的替代品,以便可以缓解 CVE-2022-25315 之类的漏洞问题
使用 gcr.io/distroless/java-debian10:11 创建的 Docker 镜像会产生诸如https://security-tracker.debian.org/tracker/CVE-2022-25315之类的漏洞。
有没有办法缓解这个漏洞?