Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Hall AC Containers
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
containers
Hall AC Containers
Commits
87a95cbd
Commit
87a95cbd
authored
4 years ago
by
Sylvester Joosten
Browse files
Options
Downloads
Patches
Plain Diff
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
2 years ago
Stage: .pre
Stage: config
Stage: build
Stage: deploy
Pipeline: Hall AC Containers
#38459
Changes
2
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
README.md
+133
-19
133 additions, 19 deletions
README.md
install.py
+9
-11
9 additions, 11 deletions
install.py
with
142 additions
and
30 deletions
README.md
+
133
−
19
View file @
87a95cbd
...
...
@@ -4,37 +4,151 @@ Hall A/C software container
Installation
-----------
1.
C
heckout
the repository and
create a build
directory
1.
C
lone
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'
This diff is collapsed.
Click to expand it.
install.py
+
9
−
11
View file @
87a95cbd
...
...
@@ -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:
'
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment