无法在容器内执行efg.py脚本作为'arg'到kubernetes部署文件

问题描述 投票:1回答:1

1)尝试在容器内运行efg.py脚本作为kubernetes部署文件中的arg。 2)在容器内部,文件存在于/opt/abc/efg.py中。 3)在运行部署时,它没有显示此类文件或目录。 4)这些是容器规格:

    spec: containers: 
       -name: abc
        image: <full path here to the registry and image>
        imagePullPolicy: Always
        env:
        - name: PYTHONPATH
          value: "/opt"
        args:
        - /bin/sh
        - -c
        - cd /opt/abc && python3.6 efg.py

日志:

python3.6:无法打开文件:efg.py [errorno]没有这样的文件或目录。

efg.py在容器中的位置是/opt/abc/efg.py

要求:1)需要运行efg.py。 2)egf.py需要一个日志目录和一个在/opt/abc/中创建的文件。像这样的/opt/abc/log/efg.log

a)要么在Dockerfile中添加mkdir(“哪个不能正常工作”) b)将它添加到args中

python-3.x docker unix kubernetes
1个回答
0
投票

发布@Nancy评论作为社区维基回答更加明显。

解:

1)在docker映像构建期间创建目录

2)对于运行脚本,在docker build中给出入口点,或者在容器规范中将其作为命令放入部署文件中:

["/bin/bash"] args: [ "-c", "cd /opt/ && python3.6 efg.py" ]

此外,如果需要在pod中导出env变量,则可以在部署文件中将其赋予。还有其他方法,但这适用于OP。

© www.soinside.com 2019 - 2024. All rights reserved.