docker镜像安装c gcc环境

Gcc简介

GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)

使用Dockerfile进行构建

使用此图像的最直接的方法是使用gcc容器作为构建和运行时环境。在Dockerfile中,按以下行编写一些内容将编译并运行项目:

ubuntu@ubuntu18:/home/dockertmp$ mkdir gcc_docker
ubuntu@ubuntu18:/home/dockertmp$ cd gcc_docker/
ubuntu@ubuntu18:/home/dockertmp/gcc_docker$ ls
ubuntu@ubuntu18:/home/dockertmp/gcc_docker$ vim Dockerfile
ubuntu@ubuntu18:/home/dockertmp/gcc_docker$ cat Dockerfile 
FROM gcc:4.9
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN gcc -o myapp main.c
CMD ["./myapp"]

写入一个Hello World程序

ubuntu@ubuntu18:/home/dockertmp/gcc_docker$ vim main.c
ubuntu@ubuntu18:/home/dockertmp/gcc_docker$ cat main.c 
#include <stdio.h>

void main()
{
  printf("Hello World\n");
}

构建并运行镜像

ubuntu@ubuntu18:/home/dockertmp/gcc_docker$ docker build -t gcc-image .
Sending build context to Docker daemon  3.072kB
Step 1/5 : FROM gcc:4.9
 ---> 1b3de68a7ff8
Step 2/5 : COPY . /usr/src/myapp
 ---> d5be36846c9a
Step 3/5 : WORKDIR /usr/src/myapp
 ---> Running in e094a671e524
Removing intermediate container e094a671e524
 ---> 5f0b0566cbc4
Step 4/5 : RUN gcc -o myapp main.c
 ---> Running in 86c50d34a19f
Removing intermediate container 86c50d34a19f
 ---> 642badab94a3
Step 5/5 : CMD ["./myapp"]
 ---> Running in dc7bff71240d
Removing intermediate container dc7bff71240d
 ---> 864c776e5ccf
Successfully built 864c776e5ccf
Successfully tagged gcc-image:latest

ubuntu@ubuntu18:/home/dockertmp/gcc_docker$ docker run -it --rm --name gcctest gcc-image
Hello World

同时也可以在启动原生gcc容器的时候编译app

$ docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:4.9 gcc -o myapp myapp.c
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章