docker - okd(openshift) pod 未将结果写入磁盘
问题描述
我成功地将 mkp224o 容器化以生成虚荣 v3 洋葱地址,并且我成功地直接从 docker 运行映像,但是在我的 OKD 集群中,映像启动并且我得到了一个正在使用 CPU 的正在运行的 Pod,但 Pod 日志中没有显示任何结果或写入磁盘。
docker run --rm mkp224o -d /tmp f # 在本地和集群节点上生成结果
如果我做oc edit dc并添加args:"/onion/mkp224o -d /tmp f" # 没有结果写入/显示
#Dockerfile
FROM alpine:3.9
RUN set -ex \
&& cd /tmp \
&& apk add --no-cache tini libsodium pcre2 \
&& apk add --no-cache --virtual .fetch git make autoconf build-base libsodium-dev pcre
2-dev \
&& git clone https://github.com/cathugger/mkp224o.git --depth 1 \
&& cd mkp224o \
&& ./autogen.sh \
&& ./configure --enable-amd64-51-30k --enable-regex \
&& make \
&& mkdir /onion \
&& cp ./mkp224o /onion \
&& apk del .fetch \
&& cd;rm -r /tmp/mkp224o \
&& adduser -g '' -h /onion -u 1000 -D -s /sbin/nologin onion \
&& chown -R onion:onion /onion
USER onion
ENTRYPOINT ["/sbin/tini","--","/onion/mkp224o"]
CMD ["-d /tmp filter"]
我期待,因为它从 docker 运行并显示结果,它应该在 pod 内的集群上执行相同的操作。
解决方案
Openshift 以组 0(root)的随机非特权用户身份运行容器。您不需要在 Dockerfile 中创建用户,因为它在 Openshift 中毫无意义。相反,您必须使用以下命令:
RUN chgrp -R 0 /onion && chmod -R g=u /onion
推荐阅读
- typo3 - 如何在typo3中为magnificpopup设置maxWidth
- spring-boot - Activiti6使用spring-boot-starter-web遇到requestMappingHandlerMapping报错
- regex - 正则表达式忽略多个错误放置的引号
- java - 肥皂消息信封格式
- xml - XSL将一个值乘以选择值中的一个值
- java - 如何在没有 id 的情况下使 menuItem 不可见?
- machine-learning - 在 SVM 模型中,当我将测试大小减小到 0.06 时,结果是否可行
- pascalscript - 将新的 ifclause 添加到过程后出现调试错误“;预期”
- google-app-engine - GAE 标准异步获取不起作用
- python - 注释子类的方法?