首页 > 解决方案 > 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 内的集群上执行相同的操作。

标签: dockerkubernetesopenshiftokd

解决方案


Openshift 以组 0(root)的随机非特权用户身份运行容器。您不需要在 Dockerfile 中创建用户,因为它在 Openshift 中毫无意义。相反,您必须使用以下命令:

RUN chgrp -R 0 /onion && chmod -R g=u /onion

推荐阅读