我正在尝试构建一个简单的 podman 容器,但它失败并退出状态为 100:
命令(不以 root 身份运行!):
podman build --tag testscript -f ./script/Dockerfile
Dockerfile:
FROM python:3.8-slim-buster
WORKDIR /usr/src/app
COPY requirements.txt /requirements.txt
RUN apt update
RUN apt install -y --no-install-recommends gcc
RUN apt install -y --no-install-recommends python3-dev
RUN apt install -y --no-install-recommends postgresql-dev
RUN pip install -r requirements.txt
COPY . .
CMD [ "python", "./script.py" ]
输出:
STEP 1: FROM python:3.8-slim-buster
STEP 2: WORKDIR /usr/src/app
--> Using cache 91647f078e8ea27aff5b76a287efb3e937fa52f29380701eb9a831b610ad2b1a
--> 91647f078e8
STEP 3: COPY requirements.txt /requirements.txt
--> Using cache e308b391443ccb8ca4aaeb0155aba78178f016fcab67e61b24759ffac5e4cba6
--> e308b391443
STEP 4: RUN apt update
--> Using cache 3902ef243d0d124c413f2b76a65dcec2c5d7ef0bcb7a0ab0ef78adab6ed0ed25
--> 3902ef243d0
STEP 5: RUN apt install -y --no-install-recommends gcc
Error: error building at STEP "RUN apt install -y --no-install-recommends gcc": error while running runtime: exit status 100
我尝试在交互式容器中一一运行命令(从相同的基础开始),它们工作得完美无缺。我只是无法建立形象。主机系统是 Debian 10。Podman 完全按照 Podman 的文档安装。
$ podman -v
podman version 3.0.1
完整的调试输出:https://gist.github.com/bertmelis/29547341cd4c916fcf470477cfe8d1e9
答案1
通过使用基础镜像FROM python:3.8-slim-buster
,顾名思义,您使用的是 Python 3.8
但是,Debian Buster 会安装 Python 3.7,因为python3-dev
已选择该软件包。python3.8-dev
不可用。如果不详细说明,这可能会导致一些冲突。
解决方案是使用基础镜像FROM python:3.7-slim-buster