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

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

проблема в том, что libtool требует libc-dev, а libc-dev требует компилятора 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 напрямую.

3 ответов


в вашем Dockerfile:

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

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

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

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

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

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

docker run -it ubuntu bash

затем просто запустите их из оболочки в контейнере...

apt-get update
apt-get install gcc

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

не удается найти пакет gcc

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


см. также: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 чтобы сохранить живой контейнер в качестве нового изображения.


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

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

и официальное изображение GCC: 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

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