试图找出为什么我的 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"]
Run Code Online (Sandbox Code Playgroud)
运行时抛出以下错误:
> 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.
Run Code Online (Sandbox Code Playgroud)
我似乎已经尝试了一切:使用 CMD 而不是 ENTRYPOINT、修改 COPY dest to ./gallery-dl.ps1、更改命令的顺序。我已添加#!/usr/bin/pwsh -File到 ps1 脚本(按照我的另一个问题中的指示)。当我附加到容器中并 ls 时,它会显示我的所有安装座及其gallery-dl.ps本身应在的位置以及我应该调用它的位置:
PS /mydir> ls
conf gallery-dl.ps1 output
Run Code Online (Sandbox Code Playgroud)
唯一有效的方法是删除 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"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21170 次 |
| 最近记录: |