0

为了测试 podman,我尝试创建一个最小图像“hello 容器”。在我的 src 目录中,我有一个 Dockerfile 和一个 main.cpp。main.cpp:

#include <iostream>
int main(int argc, char ** argv)
{
    std::cout << "Hello container" << std::endl;
}

Dockerfile:

FROM gcc:6.3 AS build
COPY . /usr/src/testCpp
WORKDIR /usr/src/testCpp
RUN g++ -o simpleapp2 main.cpp
FROM alpine:latest
RUN apk update && apk add --no-cache libstdc++
WORKDIR /usr/bin/testCpp
COPY --from=0 /usr/src/testCpp/simpleapp2 .
# Run the output program from the previous step
CMD ["./simpleapp2"]

我得到一个图像,但是当我尝试使用命令“podman run 6c7cdfe0f023”执行图像时,我收到错误消息“standard_init_linux.go:228: exec user process caused: no such file or directory”?

我的操作系统是 RH 7.5,buuildah 版本是 1.11.6,podman 版本是 1.6.4。当我检查目录 $HOME/.local/share/containers/storage/overlay/ 时,我可以在 diff/usr/bin/testCpp/ 中看到一个 simpleapp2 文件。

谢谢你的帮助。

4

1 回答 1

1

我的应用程序没有运行的原因仅仅是因为 alpine 映像不包含我的应用程序需要的所有库。只需用centos或debian替换alpine即可,执行成功。我现在必须找到一种方法来获取日志:)

问候,

于 2021-06-28T05:35:19.697 回答