Skip to content

Commit

Permalink
README: document pruning mechanism.
Browse files Browse the repository at this point in the history
Users should know that an automatic step is executed to make the image
small, because this might break their application in (hopefully) rare
situations. Also teach them it is possible to extend the paths where
important binaries are, and also skip pruning entirely if needed.
  • Loading branch information
henriquesimoes committed Dec 17, 2024
1 parent 838d3cf commit 8924c67
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,17 @@ services:
By default, the IOC will be built with statically linked EPICS libraries. If
you **need** to link them dynamically, you must define the build target as
`dynamic-link`. This will increase the resulting image size, since unused
dependencies will also be copied.
`dynamic-link`.

For non-static builds, an automatic pruning step is executed to make the IOC
image size small by removing unused artifacts. This step preserves all ELF
executables inside `RUNDIR` and the IOC repository, as well as their dependent
EPICS modules based on the linkage information. Additional paths can be
provided in `args` under `APP_DIRS` key to extend the list of where important
applications and shared libraries are, including any `dlopen(3)`ed libraries.
Pruning step can be skipped entirely by providing the `SKIP_PRUNE=1` argument,
but this is highly discouraged as it will increase significantly the image
size.

The resulting image contains a standard IOC run script, `lnls-run`, which will
be run inside `RUNDIR` and will launch the container's command under procServ,
Expand Down

0 comments on commit 8924c67

Please sign in to comment.