在Docker容器上安装GCC编译器
我正在尝试将mono软件包安装到Docker容器上,但mono需要 git、autoconf、libtool、automake、build-essential、mono-devel、gettext包 我遇到的问题是libtool需要libcdev,而libcdev需要gcc编译器 docker容器没有安装任何编译器,但我的本地计算机安装了在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
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