运行K8s pod以支持python虚拟环境

vjhs03f7  于 2023-03-11  发布在  Python
关注(0)|答案(1)|浏览(222)

我尝试创建一个Docker映像沿着K8s清单,在其中我通过pip在映像中安装一些包,然后在K8s中调用该映像以在虚拟环境中执行一些cmd。
我的Docker图像如下所示

FROM cloudcustodian/c7n
SHELL ["/bin/bash", "-c"]

RUN python3 -m venv env && \
    source ./env/bin/activate && \
    python -m pip install install c7n && \
    python -m pip install install c7n-mailer

# RUN python -m venv custodian && \
#     source custodian/bin/activate && \
#     pip install c7n && \
#     pip install c7n-mailer

我的K8s清单如下所示,其中我通过values.yaml文件传递参数

command: ["/bin/bash","-c" ]
            args:
            {{- range $.Values.args }}
            - {{ . | quote }}
            {{- end }}

我的参数是

args:
 - "source ./env/bin/activate && c7n-mailer --config /home/custodian/mailer.yml --update-lambda && custodian run -v -s /home/custodian/output /home/custodian/policies.yaml"

我试了很多排列和组合,但没有一个工作
我看到的典型错误是

kubectl logs -f custodian-cloud-custodian-cron-daily-policies-27973874-7csf5                     % at kube docker-desktop
/bin/bash: line 1: ./env/bin/activate: No such file or directory

所以主要的问题是如何运行python virt环境作为k8s pod
在问题中添加了示例代码

qjp7pelc

qjp7pelc1#

您可以在args中使用此命令source ./env/bin/activate的绝对路径

相关问题