docker鏡像安裝c gcc環境編譯C程序

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章