2015-04-19 9 views
7

Я пытаюсь установить моно пакет на контейнер Docker, но mono требует git, autoconf, libtool, automake, build-essential, mono-devel, gettext пакеты.Установка компилятора GCC на контейнер Docker

проблема, с которой я столкнулась, заключается в том, что libtool требует libc-dev, а libc-dev требует gcc-компилятора.

В докер-контейнере не установлен какой-либо компилятор, но моя локальная машина работает.

[email protected]:~/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 компилятор на контейнер Докер? должен ли я просто создать том этих каталогов компилятора в мой контейнер докеров?

Причина, по которой, я думаю, мне может понадобиться, потому что я запускаю веб-сайт, и веб-сайт непосредственно выполняет изображение докеров.

ответ

8

В вашем Dockerfile:

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

В чем разница между RUN apt-get install g ++ - 4.9? – arcolombo

+1

В чем разница между mono-mcs и инструкциями, найденными на их моно-сайте, PATH = $ PREFIX/bin: $ PATH git clone https://github.com/mono/mono.git cd mono ./ autogen.sh --prefix = $ PREFIX make make install – arcolombo

+0

@arcolombo, в моей снайпе установлен компилятор GNU C. Не стесняйтесь заменять эту строку любым другим компилятором, который вам нужен. Если вам нужен последний g ++, просто сделайте это. –

6

Как я понимаю, О.П. спутал терминологию, и, вероятно, хотел спросить:

установка GCC компилятор на Docker изображение

Мой ответ начинается с обращения к названию вопроса (относительно контейнеры), затем переходит к цели вопроса (относительно изображений).

Если вы можете запустить оболочку BASH в контейнере, вам не нужно управлять файлом Docker.

Скажем, к примеру, вы пытаетесь подсказку от docker run hello-world Например:

docker run -it ubuntu bash 

Тогда просто запустить их из оболочки в контейнере ...

apt-get update 
apt-get install gcc 

Ключевым моментом является то, что apt-get install в сыром контейнере Docker может вести себя не так, как ожидалось, если вы не первый раз запустили apt-get update. Ожидайте увидеть ...

Не удалось найти пакет для GCC

Сообщение об ошибке при попытке установить g++ без apt-get update еще более запутанной из-за "regex" substitution.


Смотрите также: http://www.liquidweb.com/kb/how-to-list-and-attach-to-docker-containers

docker ps -a ## list all available containers 

и

docker exec -ti [CONTAINER ID] bash 

Это живой манипуляция подход может быть использован для изображений создает как OP, вероятно, предназначены.Используйте docker commit, чтобы сохранить свой живой контейнер в качестве нового изображения.

3

Вы также можете получить официальное изображение, которое уже имеет GCC и/или некоторые/большинство инструментов, которые вам уже установлены. Магазин докер имеет много официальных изображения уже установки: https://store.docker.com/search?page_size=99&q=&source=verified

Я не уверен, если это правильный моно, но у них есть моно изображение: https://store.docker.com/images/4234a761-444b-4dea-a6b3-31bda725c427?tab=description

и официальная НКА изображение: https://store.docker.com/images/06ad851d-f666-47d3-9ef3-e90535c141ec?tab=description

Там же buildpack-Deps, если вы собираетесь строить Съешьте: https://store.docker.com/images/9e56c286-5b40-4838-89fe-fd513c9c3bd6

вы можете просматривать по категориям: https://store.docker.com/search?page_size=99&q=&source=verified

А также прямой поиск док-концентратора для моно или любых ваших нужд: https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=mono&starCount=0

Смежные вопросы