我尝试创建一个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
在问题中添加了示例代码
1条答案
按热度按时间qjp7pelc1#
您可以在args中使用此命令
source ./env/bin/activate
的绝对路径