我使用以下 Dockerfile 创建了自定义 GitHub Action:
FROM python:3
RUN pip install --upgrade pip
RUN pip install flake8 mypy isort
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
该entrypoint.sh
文件非常简单:
#!/bin/bash
...
$(python3 -m pip install -r $9 --no-cache-dir)
...
上面有问题的一行给出了一个错误:
/entrypoint.sh: line 44: Collecting: command not found
GitHub Action 完成得很好,即使该行引发此错误,它仍会执行。有人知道为什么会发生这种情况以及如何解决这个问题吗?
尝试的解决方案 #1:
将该行更改pip
为会出现错误,提示未安装,并且整个工作流程无法完成,而之前它毫无问题地完成。pip3
pip3
答案1
该命令python3 -m pip install -r $9 --no-cache-dir
确实运行良好。
它的输出可能以此开头:
Collecting PACKAGE_NAME
但是您没有看到这一点,因为出于某种原因,您用 包装了它$()
,这意味着“不显示输出,执行它”。
并且Collecting
不是一个命令,这就是它未被找到的原因!