github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/pfsagentd/pfsagentd-init/README.md (about)

     1  # PFSAgent Init Daemon For Use In Containers
     2  
     3  Docker-style containers are designed to run a single program. If that program
     4  has a dependency on running services, such as `pfsagentd`, there is no opportunity
     5  to ensure these are running with a subsystem like `systemd`. While there are a
     6  number of `systemd` substitutes in wide use in containers that have this service
     7  requirement (e.g. `supervisord` and `s6`), these tools generally don't have a
     8  mechanism to order such services nor ensure that each is up and running sufficient
     9  for the subsequent service or the application to immediately consume.
    10  
    11  The program in this directory, `pfsagentd-init`, provides the capability to launch
    12  a number of instances of `pfsagentd`, ensures that they are able to receive traffic
    13  via their `FUSEMountPointPath`, and finally launching the desired application.
    14  
    15  As may be common, the application to be dependent upon one or more `pfsagentd`
    16  instances has already been containerized in some existing container image.
    17  A `Dockerfile` in `../container/build` is provided to build the components that
    18  need to be added to a derived container image based off the application's original
    19  container image. Then, a tool in `../container/insert` will create a `Dockerfile`
    20  derived from the application's original container image that imports these
    21  to-be-inserted components.
    22  
    23  As part of the created `Dockerfile` is a replacement for any ENTRYPOINT and/or
    24  CMD that will launch `pfsagentd-init` that accomplishes this conversion.