在Docker容器上安装GCC编译器

在Docker容器上安装GCC编译器,gcc,docker,Gcc,Docker,我正在尝试将mono软件包安装到Docker容器上,但mono需要 git、autoconf、libtool、automake、build-essential、mono-devel、gettext包 我遇到的问题是libtool需要libcdev,而libcdev需要gcc编译器 docker容器没有安装任何编译器,但我的本地计算机安装了 arcolombo@acolombo:~/Documents/bedgraph_dockerfile$ dpkg --list |grep compil

我正在尝试将mono软件包安装到Docker容器上,但mono需要 git、autoconf、libtool、automake、build-essential、mono-devel、gettext包

我遇到的问题是libtool需要libcdev,而libcdev需要gcc编译器

docker容器没有安装任何编译器,但我的本地计算机安装了

arcolombo@acolombo:~/Documents/bedgraph_dockerfile$ dpkg --list |grep    compiler
ii  g++                                                                 4:4.8.2-1ubuntu6                                    amd64        GNU C++ compiler
ii  g++-4.8                                                     4.8.2-19ubuntu1                                     amd64        GNU C++ compiler
ii  gcc                                                         4:4.8.2-1ubuntu6                                    amd64        GNU C compiler
ii  gcc-4.8                                                     4.8.2-19ubuntu1                                     amd64        GNU C compiler
ii  hardening-includes                                          2.5ubuntu2.1                                        all          Makefile for enabling compiler flags for security hardening
ii  libllvm3.5:amd64                                            1:3.5-4ubuntu2~trusty2                              amd64        Modular compiler and toolchain technologies, runtime library
ii  libmono-compilerservices-symbolwriter4.0-cil                   3.2.8+dfsg-4ubuntu1.1                               all          Mono.CompilerServices.SymbolWriter library (for CLI 4.0)
ii  libxkbcommon0:amd64                                         0.4.1-0ubuntu1                                      amd64        library interface to the XKB compiler - shared library
ii  mono-mcs                                                    3.2.8+dfsg-4ubuntu1.1                               all          Mono C# 2.0 / 3.0 / 4.0 / 5.0  compiler for CLI 2.0 / 4.0 / 4.5
所以我的问题是,将gcc编译器放到Docker容器上最简单的方法是什么?我应该在docker容器中创建这些编译器目录的卷吗

我之所以需要它,是因为我正在运行一个网站,而该网站直接执行docker映像。

在docker文件中:

FROM ubuntu
# ...
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
    apt-get -y install gcc mono-mcs && \
    rm -rf /var/lib/apt/lists/*

据我所知,OP混淆了术语,可能是想问:

在Docker映像上安装GCC编译器

我的答案首先是回答问题的标题(关于容器),然后是问题的意图(关于图像)

如果可以在容器中运行bashshell,则不需要操纵Dockerfile

例如,您可以尝试以下示例中的提示:

然后从容器中的外壳运行这些

apt-get update
apt-get install gcc
一个关键点是,如果不首先运行
apt-get-update
,则原始Docker容器中的
apt-get-install
可能不会按预期运行。期待看到

找不到包gcc

在尝试安装
g++
而不安装
apt get update
时出现的错误消息由于以下原因更加混乱:


另见:


这种实时操作方法也可以用于创建OP可能想要的图像。使用
docker commit
将live容器另存为新映像。

您还可以获取已安装GCC和/或部分/大部分所需工具的官方映像。docker商店已经设置了许多官方图像:

我不确定这是不是正确的单声道,但他们有单声道图像:

以及GCC的官方形象:

如果您要自己构建东西,还可以使用buildpack dep:

您可以按类别浏览:


还可以直接在docker hub中搜索mono或您需要的任何内容:

RUN apt get install g++-4.9之间有什么区别?mono mcs与从其mono网站上找到的说明之间有什么区别,路径=$PREFIX/bin:$PATH git clone cd mono./autogen.sh--前缀=$PREFIX make makeinstall@arcolombo,在我的snipet中,已经安装了gnuc编译器。请随意用您需要的任何其他编译器替换这一行。如果你需要最新的g++,就这么做。@arcolombo,老实说我不是Mono用户,但我想你可以从官方软件包(通过apt get)安装Mono,也可以从上游(从他们自己的git)安装Mono。只有在需要最新版本的Mono时,才可以使用后者。事实上,您将克隆主分支,我想这可能很危险。您应该在apt安装之前内联DEBIAN_FRONTEND=noninteractive。。。。将其作为docker环境是一种不好的做法,因为当您运行容器时,它将持续存在。。。
apt-get update
apt-get install gcc
docker ps -a ## list all available containers
docker exec -ti [CONTAINER ID] bash