l'installation d'un compilateur GCC sur un Conteneur Docker
Je suis en train d'installer mono sur un conteneur Docker, mais la mono exige
git , autoconf, libtool, automake, build-essential , mono-devel, gettext paquets.
le problème que j'ai c'est que libtool nécessite libc-dev, et libc-dev nécessite compilateur gcc.
Le conteneur docker n'a pas de compilateur installé, mais ma machine locale.
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
donc ma question est , quelle est la manière la plus simple d'obtenir un compilateur gcc sur un conteneur Docker? devrais-je créer un volume de ces compilateur répertoires dans mon conteneur docker?
La raison pour laquelle je pense que j'ai peut-être besoin c'est parce que je suis en cours d'exécution d'un site web, et le site web exécute un menu fixe de l'image directement.
OriginalL'auteur sophie-germain | 2015-04-19
Vous devez vous connecter pour publier un commentaire.
Dans votre Dockerfile:
quelle est la différence entre mono-mcs, et les instructions de leur mono site, PATH=$PREFIX/bin:$PATH git clone github.com/mono/mono.git cd mono ./autogen.sh --prefix=$PREFIX make make install
dans mon snipet le compilateur C de GNU a été installé. Vous pouvez remplacer cette ligne avec un autre compilateur que vous avez besoin. Si vous avez besoin de la dernière g++, tout simplement.
eh bien, pour être honnête, je ne suis pas un Mono utilisateur, mais je suppose que vous pouvez installer Mono soit à partir de paquet officiel (via apt-get), soit de l'amont (à partir de leur propre git). Faire le dernier seulement dans le cas où si vous avez besoin de la version la plus récente de Mono. En fait, vous permet de cloner la branche principale, il pourrait être dangereux, je suppose.
Vous devriez inline DEBIAN_FRONTEND=non interactif juste avant apt-get install.... c'est une mauvaise pratique de l'avoir comme docker ENV, car elle persiste lorsque vous exécutez le conteneur...
OriginalL'auteur Vitaly Isaev
Comme je le comprends, l'OP a perdu le sens de la terminologie, et probablement destinée à demander:
Ma réponse commence par aborder le titre de la question (concernant conteneurs), pour ensuite passer à l'intention de la question (concernant images).
Si vous pouvez exécuter un shell BASH dans le conteneur, alors vous n'avez pas besoin de manipuler un Dockerfile.
Dire, par exemple, vous essayez de l'indice de l'
docker run hello world
exemple:Alors il suffit d'exécuter à partir de l'interpréteur de commandes dans le conteneur...
Un point essentiel est que
apt-get install
en raw d'un conteneur Docker peut pas se comporter comme prévu si vous n'avez pas d'abord exécuterapt-get update
. S'attendre à voir...Le message d'erreur lorsque vous essayez d'installer
g++
sansapt-get update
est encore plus déroutant en raison "regex" de substitution.Voir aussi: http://www.liquidweb.com/kb/how-to-list-and-attach-to-docker-containers
et
Ce live de manipulation d'approche peut également être utilisé pour crée des images que l'OP veut probablement. Utilisation
docker commit
pour enregistrer votre conteneur en tant que nouvelle image.OriginalL'auteur nobar
Vous pouvez également saisir une image officielle qui a déjà GCC et/ou certains de/la plupart des outils dont vous avez besoin est déjà installé. Le docker magasin a beaucoup d'images officielles déjà de l'installation: https://store.docker.com/search?page_size=99&q=&source=vérifié
Je ne suis pas sûr si c'est le bon mono, mais ils ont un mono image: https://store.docker.com/images/4234a761-444b-4dea-a6b3-31bda725c427?tab=description
Et un fonctionnaire de GCC image: https://store.docker.com/images/06ad851d-f666-47d3-9ef3-e90535c141ec?tab=description
Il y a aussi buildpack-deps si vous allez construire des choses vous-même: https://store.docker.com/images/9e56c286-5b40-4838-89fe-fd513c9c3bd6
Vous pouvez parcourir par catégorie: https://store.docker.com/search?page_size=99&q=&source=vérifié
Et aussi directement à la recherche docker hub pour mono ou quels que soient vos besoins: https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=mono&starCount=0
OriginalL'auteur zbeekman