docker CMD 中的命令替换

command substitution in docker CMD

使用:

CMD ["$(pipenv --venv)/bin/python3", "main.py", "/root/uploads"]

导致 docker run 错误:

Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\"$(pipenv --venv)/bin/python3\\": stat $(pipenv --venv)/bin/python3: no such file or directory\"\n"

有什么方法可以在 CMD 部分进行评估命令替换,例如 $(pipenv --venv)/bin/python3

改成下面

CMD ["bash", "-c", "$(pipenv --venv)/bin/python3 main.py /root/uploads"]

如果问题仍然存在,请将 $ 更改为 $$