https://github.com/andrewannex/docker-for-vicar
Dockerfiles to run VICAR
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.5%) to scientific vocabulary
Repository
Dockerfiles to run VICAR
Basic Info
- Host: GitHub
- Owner: AndrewAnnex
- License: apache-2.0
- Language: Shell
- Default Branch: main
- Size: 32.2 KB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Docker for Vicar
Provides dockerfiles for VICAR
Currently attempts to provide an ubuntu container.
VICAR is installed in the /vos directory but all the commands/environment variables are already available in tcsh if you start the container
Work directory
Work within the docker container is expected to occur in the /data/ folder.
Use that path for volumes or mounts to move data in and out of the docker container.
For example, to use a mount for the current working directory on the host machine,
use docker run with -vpwd:/data to access data in that folder within docker.
Just make sure the permissions on the work directory on the host machine are permissive (777).
Calibration configuration
For certain VISOR programs (marsmap etc) VICAR needs a calibration folder for each supported mission.
These files can get very large so they are not included in the docker container. To use calibration data
stored on the host machine, simply store the data in a folder in some directory you want and then
mount the parent directory to /calibration so it is available within the container.
This is done by adding -v <HOSTFOLDER>:/calibration to the docker run command.
Below we actually make it a named volume on host using the docker volume command.
This can also be inside a exclusive docker volume: ```bash docker volume create vicarcal
inside the volume copy mission cal dirs into calibration so ./m20, ./mer etc exist
now run on the host wherever
docker run -it --rm -v vicarcal:/calibration -v
The /calibration directory will have the various folders for each supported mission (e.g. m20,mer, etc)
and the docker container has some smarts to discover those folders at runtime (see .cshrc).
Compiling VICAR
This is a bit of a work in progress still, but if you have a git repo of VICAR you are developing in on the host, you can compile within the docker container by following the steps below:
- add a mount for the vos directory to the docker run step like
-v HOSTVICAR/vos:/vossrc - Inside the container run
rsync -crhv --out-format="[%t]:%o:%f" /vossrc/ $V2TOPto sync the updated files inside the container - Rebuild something like MARS sub
cd $MARSSUB && $V2UTIL/bldcomfiles_nounpack.csh $MARSLIB
Compiling VICAR with source on host
Say you are editing VICAR source code on a host machine and want to compile it within a docker container and then save the resulting container as an image.
you would run:
bash
docker run -w /data/ -v /path/to/host/src/VICAR/vos/:/vossrc --name vicar_compiled --platform linux/amd64 vicar:ubuntu 'source ~/.cshrc && update_mars'
The volume will make the host machine's VICAR source code directory available in the container and the aliases within .cshrc will take care of building the MARS programs in VICAR.
Then just use docker commit to save the final container as a new image.
bash
docker container commit <sha of container> vicarprod
then you can use that container name (vicarprod) in place of the other names and run one-off commands like
```bash !docker run -t --rm -w /data/ -v vicarcal:/calibration -v ./path/to/host/data/:/data vicarprod:latest 'source ~/.cshrc && $MARSLIB/marsrelabel inp=in.vic out=out.vic -cm'
```
X11 on macOS
If using macOS please:
- Install XQuartz
- Enable "Allow Connections from network clients" in XQuartz security settings
- Quit XQuartz
- allow access from localhost
xhost + 127.0.0.1 - Docker run with the display variable included like
docker run -it --rm -e DISPLAY=host.docker.internal:0 --platform linux/amd64 -w /data/ vicar:ubuntu /bin/tcsh - You can now run
xvdto see a vicar GUI program
Owner
- Name: Dr. Andrew Annex
- Login: AndrewAnnex
- Kind: user
- Location: Pasadena, CA
- Company: SETI Institute
- Website: http://andrewannex.com
- Twitter: AndrewAnnex
- Repositories: 179
- Profile: https://github.com/AndrewAnnex
Coder and Planetary Science PhD from Johns Hopkins University. Fmr Postdoc @ Caltech, Current Senior Science Systems Engineer @ SETI Institute
GitHub Events
Total
Last Year
Dependencies
- actions/checkout v4 composite
- docker/build-push-action 5 composite
- docker/login-action v1 composite
- docker/setup-buildx-action v3 composite