sickcodes / Docker-OSX

Run macOS VM in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X Security Research! Docker mac Containers.
https://hub.docker.com/r/sickcodes/docker-osx
GNU General Public License v3.0
36.1k stars 1.78k forks source link

Feedback requested for PERSISTENT DISKS DISCUSSION: `-e PERSISTENT=true -v "${PWD}/image.img:/image"` #455

Open sickcodes opened 2 years ago

sickcodes commented 2 years ago

I have estimated the amount of human time it takes people to create and copy/mv out images and I think it's high. I want to add persistent disks on the first run (add the ability, nothing being removed, all old processes work, as I will never deprecated anything)

Take note, all of this is done OUTSIDE of Docker, but also consider that to get the image from INSIDE the Docker, it will take work also.

Option 1:

Should I add a (default) check (for every single container) where you can say you want

qemu-img create -f qcow2 image.img 512G

    -e PERSISTENT=true \
    -v "${PWD}/image.img:/image" \

Option 2:

Or the same, but it it will just check if you're supplying an image instead of using PERSISTENT, it will just realise /image, is a raw .img, without PERSISTENT=true needed

qemu-img create -f qcow2 image.img 512G

    -v "${PWD}/image.img:/image" \

Option 3:

If users might accidentally overwrite their disk, use date, for example:

This will create in current directory ./image_2022-02-23-16:24:11.img, format it to skip disk utility step.

NEW_IMAGE=./image_$(date +%F-%T).img
echo "${NEW_IMAGE}"

# turn on network block device kernel module from libvirtd
sudo modprobe nbd

# create a disk
# AND FORMAT IT TOO TO SKIP THE DISK UTILITY STEP
qemu-img create -f qcow2 "${NEW_IMAGE}" 512G
sudo qemu-nbd --connect=/dev/nbd0 ${NEW_IMAGE}
sudo mkfs.apfs /dev/nbd0
sudo qemu-nbd --disconnect /dev/nbd0

    -v "${PWD}/${NEW_IMAGE}:/image" \

Option 4:

Or leave everything as-is.

sickcodes commented 2 years ago

Option 5: add all of the above

spantheslayer commented 2 years ago

Why don't you add all of them 😂

But personally would love to see (default) check (for every single container) being implemented. This will be a really neat feature to have.

omarahm3 commented 2 years ago

would be really great if you can add all of the options, but if i had to choose, i would love to see option 3

ballerxdakid commented 2 years ago

i would agree with above be nice with all but number one but to be honest what ever you choose thanks for you work my g my g

sickcodes commented 2 years ago

Adding the most simple way here:

https://github.com/sickcodes/Docker-OSX/pull/456

The submodule move is to make OSX-KVM static, if sometimes we are behind