Skip to content
Snippets Groups Projects
Commit 87a95cbd authored by Sylvester Joosten's avatar Sylvester Joosten
Browse files

updated README for v2.0 release and removed mongo runscripts for now

parent 5704aa67
Branches master
Tags v2.0.0
No related merge requests found
Pipeline #38458 failed
Pipeline: Hall AC Containers

#38459

    ......@@ -4,37 +4,151 @@ Hall A/C software container
    Installation
    -----------
    1. Checkout the repository and create a build directory
    1. Clone the repository and go into the directory
    ```
    git clone https://eicweb.phy.anl.gov/containers/hallac_containers.git
    cd hallac_containers && mkdir BUILD && cd BUILD
    cd hallac_containers
    ```
    2. Configure the install for your environment, providing the appropriate `prefix` and
    `module_dir` you want to use.
    2. Run the install script `install.py` to install to your `<PREFIX>` of choice
    (e.g. `$HOME/local/opt/hallac_2.0.0`). By default the
    modulefile will be installed to `$PREFIX/../../etc/modulefiles`.
    You can use the `-l` flag to force a local install (which will not install the
    modulefiles).
    You can use the `-v` flag to select the version you want to install, or omit the
    flag if you want to install the master build. The recommended stable
    release version is `v2.0.0`.
    ```
    cmake .. -DCMAKE_INSTALL_PREFIX=<prefix> -DINSTALL_MODULE_DIR=<module_dir>
    ./install.py -v 2.0.0 <PREFIX>
    ```
    3. Download the container and install.
    **Available flags**:
    ```bash
    -v VERSION, --version VERSION
    (opt.) project version. Default: current version (in repo).
    -b BIND_PATHS, --bind-path BIND_PATHS
    (opt.) extra bind paths for singularity.
    -m MODULE_PATH, --module-path MODULE_PATH
    (opt.) Root module path where you want to install a
    modulefile. D: <prefix>/../../etc/modulefiles
    -l, --local Local install, will not install the modulefiles (you will have
    to run the launcher scripts from their relative paths).
    -f, --force Force-overwrite already downloaded container with the same name.
    ```
    make install
    3. To use the container in installed mode, you can load the modulefile,
    and then use the included apps as if they are native apps on your system!
    ```bash
    module load hallac
    ```
    4. To use the container: load the modulefile, and then use the included apps as if
    they are native to your system!
    4. To use the container in local mode, you can install the container with the `-l` flag,
    and then use the runscripts (under `$PREFIX/bin`) manually.
    ```bash
    ./install.py $PREFIX -l
    ...
    $PREFIX/bin/hcana ## or some other runscript
    ```
    module load hallac_container
    4. (Advanced) If you need to add additional bind directives for the internal singularity container,
    you can add them with the `-b` flag. Run `./install.py -h` to see a list of all
    supported options.
    Usage
    -----
    ### A. Running hcana (or any included app) with modulefiles with singularity
    1. Add the installed modulefile to your module path, e.g.,
    ```bash
    module use <prefix>/../../etc/modulefiles
    ```
    Included apps
    -------------
    2. Load the Hall A/C container
    ```bash
    module load hallac
    ```
    - evio : EVIO DAQ data format
    - analyzer : Hall A analyzer (podd)
    - hcana : Hall C analyzer (hcana)
    - simc : SIMC version that takes file input
    - root : root version used for the analyzer
    - rootls, rootbrowse, root-config
    - xml2evio, evio2xml, evioCat, eviocopy
    3. Run the app as if it is native to your system:
    ```bash
    hcana
    ```
    ### B. Running hcana (or any included app) locally (without modulefiles)
    1. This is assuming you installed with the `-l` flag to a prefix `$PREFIX`:
    ```bash
    ./install.py $PREFIX
    ```
    2. To start a shell in the container environment, do
    ```bash
    $PREFIX/bin/hcana
    ```
    ### C. Running the singularity development environment with modulefiles
    1. Add the installed modulefile to your module path, e.g.,
    ```bash
    module use <prefix>/../../etc/modulefiles
    ```
    2. Load the Hall A/C container
    ```bash
    module load hallac
    ```
    3. To start a shell in the container environment, do
    ```bash
    hallac-shell
    ```
    ### D. Running the singularity development locally (without modulefiles)
    1. This is assuming you installed with the `-l` flag to a prefix `$PREFIX`:
    ```bash
    ./install.py $PREFIX
    ```
    2. To start a shell in the container environment, do
    ```bash
    $PREFIX/bin/hallac-shell
    ```
    ### E. Using the docker container for your CI purposes
    1. To load the container environment in your run scripts, you have to do nothing special.
    The environment is already setup with good defaults, so you can use all the programs
    in the container as usual and assume everything needed to run the included software
    is already setup.
    2. If using this container as a basis for a new container, you can direction access
    the full container environment from a docker `RUN` shell command with no further
    action needed. For the most optimal experience, you can install your software to
    `/usr/local` to fully integrate with the existing environment. (Note that, internally,
    `/usr/local` is a symlink to `/opt/view`).
    Included apps
    -------------
    - `analyzer`
    - `evio2xml`
    - `evioCat`
    - `eviocopy`
    - `hcana`
    - `root`
    - `root-config`
    - `rootbrowse`
    - `rootls`
    - `xml2evio`
    - `et_feeder`
    - `et_consumer`
    - `et_producer`
    - `softIoc`
    - `softIocPVA`
    - `caget`
    - `caput`
    - `pvput`
    - `pvget`
    - `camonitor`
    - `pvmonitor`
    - `web_canvas_server'
    ......@@ -39,8 +39,6 @@ PROGRAMS = [
    'et_feeder',
    'et_consumer',
    'et_producer',
    'hc_display_server',
    'hc_spec',
    'softIoc',
    'softIocPVA',
    'caget',
    ......@@ -49,12 +47,12 @@ PROGRAMS = [
    'pvget',
    'camonitor',
    'pvmonitor',
    'mongo',
    'mongod',
    'mongodump',
    'mongoexport',
    'mongoimport',
    'mongostat',
    # 'mongo',
    # 'mongod',
    # 'mongodump',
    # 'mongoexport',
    # 'mongoimport',
    # 'mongostat',
    'web_canvas_server']
    ## URL for the current container (git tag will be filled in by the script)
    ......@@ -156,7 +154,7 @@ if __name__ == "__main__":
    libdir = '{}/lib'.format(args.prefix)
    libexecdir = '{}/libexec'.format(args.prefix)
    root_prefix = os.path.abspath('{}/..'.format(args.prefix))
    moduledir = '{}/{}'.format(args.module_path, PROJECT_NAME)
    moduledir = '{}/{}'.format(args.module_path, IMAGE_ROOT)
    dirs = [bindir, libdir, libexecdir]
    if not args.local:
    dirs.append(moduledir)
    ......@@ -175,7 +173,7 @@ if __name__ == "__main__":
    #img += "_builder"
    container = '{}/{}.sif.{}'.format(libdir, img, version_local)
    if not os.path.exists(container) or args.force:
    url = CONTAINER_URL.format(group=GROUP_NAME, project=PROJECT_NAME,
    url = CONTAINER_URL.format(group=GROUP_NAME, project=IMAGE_ROOT,
    version=version_repo, img=img)
    print('Downloading container from:', url)
    print('Destination:', container)
    ......@@ -185,7 +183,7 @@ if __name__ == "__main__":
    print(' ---> run with -f to force a re-download')
    if not args.local:
    make_modulefile(PROJECT_NAME, version_local, moduledir, bindir)
    make_modulefile(IMAGE_ROOT, version_local, moduledir, bindir)
    ## configure the application launchers
    print('Configuring applications launchers: ')
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment