Valgrind y C en Docker
Pasos para instalar
- Instala Docker y docker-compose. En macOS basta con instalar docker desktop.
- Verifica que tienes docker instalado con
docker -v
- Clona este repositorio:
git clone https://github.com/IIC2133-PUC/edd-docker.git && cd edd-docker
. corremake start
dentro del directorio clonado.
Nota, La primera vez tomara mucho tiempo ya que el container se construira, pero en posteriores ejecuciones deberia partir rapido.
Cómo usar
- Luego de ejecutar
make start
Se entrara automaticamente al contenedor. En tu terminal deberia salir algo similar aroot@0<id del contenedor>:/volume
. - Hace
cd
hacia la carpeta que deseas acceder. - desde aca puedes utilizar la consola como quieras, para compilar, ejecutar o utilizar valgrind.
Por ejemplo si tienes la carpeta
│volume
└───code
│ └───src
│ │
│ └───tests
│ │
│ └Makefile
los comandos son ejecutados Dentro del container (con el comando mencionado anteriormente)
cd code/ # entrar a la carpeta que deseamos
make
./program # ejecutar ejecutar el ejecutable
valgrind ./program #ejecutar valgrind
Consideraciones importantes
-
El contenedor de docker y tu computador comparten la carpeta
/volumes
, por lo tanto puedes modificar cualquier archivo desde afuera del contenedor y los cambios se veran reflejados adentro también. -
Lo unico importante es siempre compilar tu codigo desde adentro del contenedor. Preocupate de seguir el 2do paso en la seccion
Cómo usar
para entrar al contenedor. Si compilas tu codigo desde afuera, puede ser que el binario resultante sea distinto y te arroje errores al ejecutarlo dentro del contenedor. -
El compilador y valgrind vienen instalados, no debes instalarlos tu. Puedes probar que valgrind esté funcionando:
valgrind ./program
. Si crees que algo más debiera estar instalado por defecto avisame :) -
Si deseas cambiarle el nombre al container, basta con cambiarlo en el archivo
docker-compose.yml
-
La primera vez que ejecutes
docker-compose up -d
tomara algun tiempo ya que ha de descargar todos los archivos nescesarios.