gpt4 book ai didi

c - 在C程序中构建docker镜像

转载 作者:行者123 更新时间:2023-11-30 16:22:05 27 4
gpt4 key购买 nike

我正在通过套接字发送 Dockerfile 和 .c 文件。我在尝试着使用以下命令在 C 程序中构建镜像:

system("docker build -t my_image .")

但是当它开始构建图像时,我得到以下输出:

Step 1/6 : FROM gcc:4.9
---> 1b3de68a7ff8
Step 2/6 : COPY . /home/server/src
---> 3ad55a5751dd
Step 3/6 : WORKDIR /home/server/src
---> Running in 8d768eda43ee
Removing intermediate container 8d768eda43ee
---> bf9a9ff0273b
Step 4/6 : EXPOSE 9000
---> Running in 75c48b8aa200
Removing intermediate container 75c48b8aa200
---> b38c514453e0
Step 5/6 : RUN gcc ./rand_gen_server.c -o server_side
---> Running in b4486ecd8451
/usr/lib/x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
The command '/bin/sh -c gcc ./rand_gen_server.c -o server_side' returned a non-zero code: 1

直接在 cmd 中构建时,一切正常。我正在运行C使用 sudo 进行编程。

有什么想法吗?

最佳答案

@ForceBru 和 @Rudi 的结合帮助了我。由于 Dockerfile 是从套接字获取的,因此我必须将 COPY 和 WORKDIR 路径替换为与新主机对应的路径。

此外,我将步骤 5/6 更改为 gcc -c/rand_gen_server.c -o server_side

让我们看看其余的努力是否有效。

更新事实证明,在编译过程中,我无法编译另一个 .c 文件。为了做到这一点,我必须创建一个新流程。使用函数 fork() 并执行系统调用来构建 docker 镜像完成了这项工作。另外,我在编译过程中没有使用 -c 选项。

关于c - 在C程序中构建docker镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54575213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com