Tengo una situación en la que:
-v /my/local/path/tmp/mycode:/mycodeBásicamente, quiero poder editar los archivos en el volumen montado pero que esos cambios no persistan.
Mi flujo de trabajo actual es crear un contenedor ficticio usando un dockerfile:
ADD . /mycodey luego ejecutar ese contenedor.
Sin embargo, a medida que crece el repositorio, este paso lleva más y más tiempo, porque la única forma que se me ocurre es hacer una copia completa de ~/tmp/mycode para poder manipular los archivos en el contenedor.
También pensé en montar el directorio y copiarlo dentro del contenedor y confirmar ese contenedor, pero eso tiene el mismo problema.
¿Hay alguna manera de ejecutar un contenedor docker para permitir la edición de archivos sin que persistan en el host sin copiar todo el directorio?
Estoy usando la última ventana acoplable para Mac, actualmente la versión 17.03.1-ce-mac5 (16048).
Esto es bastante trivial de hacer con la ventana acoplable y la superposición:
docker run --name myenv --privileged -v /my/local/path/tmp/mycode:/mnt/rocode:ro -it ubuntu /bin/bash docker exec -d myenv /sbin/mount -t overlay overlay -o lowerdir=/mnt/rocode,upperdir=/mycode,workdir=/mnt/code-workdir /mycodeEsto debería montar el código de su directorio de solo lectura y crear la superposición dentro del contenedor para que /mnt/rocode sea de solo lectura, pero /mycode se pueda escribir.
Asegúrese de que su kernel sea 3.18+ y que tenga una superposición en su /proc/filesystems.