在 $PATH 中找不到可执行文件:未知

executable file not found in $PATH: unknown

试图找出为什么我的 dockerfile:

FROM mcr.microsoft.com/powershell:ubuntu-focal
RUN apt-get -qq -y update && \
    apt-get -qq -y upgrade && \
    apt-get -qq -y install curl ca-certificates python3-pip exiftool mkvtoolnix
RUN pip3 install gallery-dl yt-dlp
WORKDIR /mydir
COPY gallery-dl.ps1 .
ENTRYPOINT ["gallery-dl.ps1"]

在运行时抛出以下错误:

> docker build --file gallery-dl.dockerfile --tag psa .
> docker run -it --rm --name psatest psa
docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "gallery-dl.ps1": executable file not found in $PATH: unknown.

我似乎已经尝试了所有方法:使用 CMD 而不是 ENTRYPOINT,将 COPY dest 修改为 ./gallery-dl.ps1,更改命令的顺序。 我已经将 #!/usr/bin/pwsh -File 添加到 ps1 脚本(按照我的另一个问题中的指示)。 当我附加到容器中并 ls 时,它会显示我所有的安装和 gallery-dl.ps 本身应该在的位置以及我应该调用它的位置:

PS /mydir> ls
conf  gallery-dl.ps1  output

唯一可行的是删除 WORKDIR,但我确实需要它,我不能 运行 root 中的所有内容。

两件事:确保文件被标记为可执行文件。由于 /mydir 不在您的路径中,您需要通过在名称前添加 ./ 告诉 Docker 在当前目录中查找脚本。

FROM mcr.microsoft.com/powershell:ubuntu-focal
RUN apt-get -qq -y update && \
    apt-get -qq -y upgrade && \
    apt-get -qq -y install curl ca-certificates python3-pip exiftool mkvtoolnix
RUN pip3 install gallery-dl yt-dlp
WORKDIR /mydir
COPY gallery-dl.ps1 .
RUN chmod +x gallery-dl.ps1
ENTRYPOINT ["./gallery-dl.ps1"]