Open tomeichlersmith opened 6 months ago
Did some charliecloud investigation, here are my notes
--write
with ch-run
so we can create the destination directories when --bind
--write
and use the pre-created /mnt/[0-9]
but then users would need to get used to the paths changing within the denv which I'd like to avoiddir
formatted image so we can use --write
--home
because that tries to --bind ${workspace}:/home/$USER
in the container which is not what we want (and fails if /home/$USER
doesn't exist in the image)--bind
and --set-env
allows us to do the mounting and environment setup as need beIn a simple ubuntu server VM.
wget -q -O - https://github.com/hpc/charliecloud/releases/download/v0.35/charliecloud-0.35.tar.gz \
| tar xzf -
cd charliecloud-0.35
./configure.sh
make
sudo make install
cd examples/hello
ch-image build . # infers name as name of directory
cd ../..
mkdir tutorial
cd tutorial
ch-convert -o dir hello hello
ch-run --write --cd=${PWD} --bind ${PWD} --set-env=HOME=${PWD} -- /bin/bash
I can't get squashfuse internal mounting to work on Ubuntu because charliecloud requires libfuse3 while the squashfuse installable on Ubuntu 22.04 uses libfuse2.
tom@ch-playground:~/charliecloud-0.35$ sudo apt install libsquashfuse-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libfuse2 libsquashfuse0
The following NEW packages will be installed:
libfuse2 libsquashfuse-dev libsquashfuse0
0 upgraded, 3 newly installed, 0 to remove and 45 not upgraded.
Need to get 146 kB of archives.
After this operation, 628 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
I'm unsure on how to proceed from here although I suppose I could try to roll my own build of squashfuse.
I haven't done a very exhaustive search, but I have stumbled upon other runners that may be useful for
denv
to support.