建立在C程序搬运工图像

问题描述 投票:0回答:1

我送过插座Dockerfile和.c文件。我尝试使用下面的命令来建立一个C PROGRAMM图像:

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直接建设,一切正常。我正在使用qazxsw POI C程序。

有任何想法吗?

c sockets docker
1个回答
0
投票

@ForceBru和@Rudi的组合帮助我。由于Dockerfile是从插座获得,我不得不更换sudoCOPY路径对应于新的宿主的人。

另外,我改变了一步5/6 WORKDIR

让我们来看看,如果努力的其余部分将正常工作。

UPDATE事实证明,在编译过程中,我不能编译另一个.c文件。为了做到这一点,我要创建一个新的进程。使用功能gcc -c /rand_gen_server.c -o server_side和执行系统调用建立泊坞窗图像做了工作。另外,我没有在编译期间使用fork()选项。

© www.soinside.com 2019 - 2024. All rights reserved.