I'm not sure about this particular error, but some tips for using CPF merge that might apply:

1) "iris start" returns before IRIS is fully up (run "iris list" fast enough and you may see that the status hasn't yet reached "running").  To mitigate this you can block on the IRIS readiness script, something like:

iris start IRIS && /usr/irissys/dev/Cloud/ICM/waitReady.sh && iris merge IRIS mergefile.cpf

2) You can avoid the timing issues above by having the merge carried out as part of "iris start" using environment variable ISC_CPF_MERGE_FILE, something like:

ISC_CPF_MERGE_FILE=mergefile.cpf iris start IRIS

Note in all of the above examples, best practice is to provide the full path to the merge file.

I'm not sure I understand the use case for installing SSH when docker exec is already available:

  • Running an IRIS session:
    • docker exec -it iris iris session IRIS
  • Starting a shell:
    • docker exec -it iris bash
  • Starting a shell as root (in an IRIS container with "Normal" security):
    • docker exec -it --user=root iris bash

These commands can be run from a machine other than the host:

  • docker --host=tcp://35.231.179.51:2376 exec -it iris bash

They can be run securely from an outside machine by configuring docker to use TLS:

  • docker --host=tcp://35.231.179.51:2376 --tls --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem exec -it iris bash

In what situations would SSH be preferable?

I've always used "%Extends" for this purpose:

Write $classmethod(subclass,"%Extends",superclass)

Both methods scan the entire inheritance tree, but in the case of multiple inheritance, "%IsA" only finds primary superclasses, whereas "%Extends" finds all superclasses.

For example, consider the following class:

Class Ens.BusinessService Extends (Ens.Host, Ens.Util.IOLogger)

And the corresponding output:

ENSEMBLE>zw $classmethod("Ens.BusinessService","%IsA","Ens.Util.IOLogger")
0
ENSEMBLE>zw $classmethod("Ens.BusinessService","%Extends","Ens.Util.IOLogger")
1

More information about the difference between the two methods is discussed here.