Te sugerimos que pruebes esta respuesta en un ambiente controlado antes de enviarlo a producción, un saludo.
Solución:
En su Dockerfile:
FROM ubuntu
# ...
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update &&
apt-get -y install gcc mono-mcs &&
rm -rf /var/lib/apt/lists/*
Según tengo entendido, el OP ha confundido la terminología y probablemente pretendía preguntar:
instalar un compilador GCC en un Docker imagen
Mi respuesta comienza abordando el título de la pregunta (sobre contenedores), luego pasa a la intención de la pregunta (con respecto a imágenes).
Si puede ejecutar un shell BASH en el contenedor, entonces no necesita manipular un Dockerfile.
Digamos, por ejemplo, que intentas la pista del docker run hello-world
ejemplo:
docker run -it ubuntu bash
Luego simplemente ejecute estos desde el caparazón en el contenedor…
apt-get update
apt-get install gcc
A key el punto es que apt-get install
en un contenedor Docker sin procesar puede no comportarse como se esperaba si no ejecuta primero apt-get update
. Espera ver…
No se puede localizar el paquete gcc
El mensaje de error al intentar instalar g++
sin que apt-get update
es aún más confuso debido a la sustitución de “regex”.
Consulte también: http://www.liquidweb.com/kb/how-to-list-and-attach-to-docker-containers
docker ps -a ## list all available containers
y
docker exec -ti [CONTAINER ID] bash
Este enfoque de manipulación en vivo también se puede usar para crear imágenes como probablemente pretendía el OP. Usar docker commit
para guardar su contenedor en vivo como una nueva imagen.
También puede obtener una imagen oficial que ya tenga GCC y/o algunas/la mayoría de las herramientas que necesita ya instaladas. La tienda docker ya tiene muchas imágenes oficiales configuradas: https://store.docker.com/search?page_size=99&q=&source=verified
No estoy seguro de si es el mono correcto, pero tienen una imagen mono: https://store.docker.com/images/4234a761-444b-4dea-a6b3-31bda725c427?tab=description
Y una imagen oficial de GCC: https://store.docker.com/images/06ad851d-f666-47d3-9ef3-e90535c141ec?tab=description
También hay buildpack-deps si va a construir cosas usted mismo: https://store.docker.com/images/9e56c286-5b40-4838-89fe-fd513c9c3bd6
Puede navegar por categoría: https://store.docker.com/search?page_size=99&q=&source=verified
Y también busque directamente en Docker Hub mono o cualquiera que sean sus necesidades: https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=mono&starCount=0