bash - 使用输入参数从kubernetes运行python脚本

标签 bash python-2.7 docker kubernetes kubernetes-helm

我正在尝试使用输入args(使用python上的import argsparse)从kubernetes运行python脚本,python脚本在kubernetes上没有任何输入args的情况下运行良好,而且以下命令python python_script.py -e $(date -d '2020/08/23') -d 7 -m在docker镜像上运行也没有问题。
我正在尝试构建我的values.yaml文件,以便kubernetes也可以运行它,直到现在都没有成功。
我的values.yaml文件(仅与脚本相关的部分):

- name: python-script
  command: ["python"]
  args:
    - "python_script.py"
    - "-e $(date -d '2020/08/23')"
    - "-d 7"
    - "-m"
  resources:
    limits:
      cpu: 50m
      memory: 512Mi
    requests:
      cpu: 50m
      memory: 512Mi
  failedJobsHistoryLimit: 1
  successfulJobsHistoryLimit: 3
  concurrencyPolicy: Forbid
  restartPolicy: Never
在kubernetes上运行时输出:python_script.py: error argument -e/--end_date: Not a valid date: ' $(date -d "2020/08/23")'.就像kubernetes出于某种原因甚至没有将bash命令$(date -d "2020/08/23")解析为有效日期,而docker镜像没有任何问题。
我试图在python文件后添加另一个["bash"]命令,并在其中添加args,但仍然出现错误。
有任何想法吗?任何帮助将不胜感激!
谢谢。

最佳答案

使用python命令运行时,不会调用shell
因此,请尝试:

- name: python-script
  command: ["/bin/sh"]
  args:
    - -c
    - >-
        python python_script.py
        -e $(date -d '2020/08/23')
        -d 7
        -m
  resources:
    limits:
      cpu: 50m
      memory: 512Mi
    requests:
      cpu: 50m
      memory: 512Mi
  failedJobsHistoryLimit: 1
  successfulJobsHistoryLimit: 3
  concurrencyPolicy: Forbid
  restartPolicy: Never

关于bash - 使用输入参数从kubernetes运行python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63545570/

相关文章:

c++ - 为什么在构建Docker容器时找不到所需的libboost-all-dev版本?

linux - 在 bash 脚本中发出回显变量

linux - grep 是如何制作颜色的?

macos - sudo open -e ~/.bash_profile Permission denied mac

python - str.split() 的拆分顺序是否有任何保证?

powershell - Windows powershell 中无法识别命令 "docker"

docker - 为在 Kubernetes 中运行的容器设置主机名

mysql - 使用 bash 脚本显示来自 MySql 的数据时出错

python - 如何提高memcache命中率?

Python通过正则表达式分割看后面