Hi Oliver,
Generally, each unique ISC_DATA_DIRECTORY should be bound to one persistent instance. If you have two instances you wish to maintain, IRIS1 and IRIS2, they should each have their own unique persistent storage location. There's nothing preventing you from putting both of them on the same EFS store, as long as that point to different, unique directories within that store. So your idea of an individual directory tree for each container should work just fine. (Exception: If you are using mirroring for availability, I would not recommend storing both/all parts of a given mirror set on the same EFS store.) Two simultaneously running containers/instances should never be pointing at the same mgr/IRIS.DAT, that will not result in a functional application.
I say persistent instance because you can freely stop a container, and then start a new one with the same ISC_DATA_DIRECTORY and have a new container - possibly with a newer version of InterSystems IRIS, or a newer version of your code - run on the same persisted data.
Additionally: Depending on your particular needs, you may not wish to use EFS for ISC_DATA_DIRECTORY locations. EFS is an NFS implementation, which has been known to cause problems with container runtime engines, and EFS will generally have higher disk latency than other things, EBS might be one better choice. Consult AWS documentation to be sure! https://docs.aws.amazon.com/efs/latest/ug/performance.html
This is a security feature. The environment for things like LD_LIBRARY_PATH is strictly controlled to minimize the risk of unauthorized input.
There's an iris.cpf setting that will help you: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=RACS_LibPath
Two Dockerfiles that would work:
FROM ${IMAGE}
ENV MYDIR /usr/mydir
# Add MYDIR to the LD_LIBRARY_PATH of IRIS subprocesses
RUN sed /usr/irissys/iris.cpf -e "s%^LibPath=%LibPath=$MYDIR%" > /tmp/iris.cpf \
# sed -i alters ownership, this approach preserves it
&& cat /tmp/iris.cpf > /usr/irissys/iris.cpfFROM ${IMAGE}ENV MYDIR /usr/mydirUSER root
# Add MYDIR to the LD_LIBRARY_PATH of IRIS subprocesses
RUN sed -i $ISC_PACKAGE_INSTALLDIR/iris.cpf -e "s%^LibPath=%LibPath=$MYDIR%" \
# sed -i alters ownership, let's reset it
&& chown $ISC_PACKAGE_MGRUSER:$ISC_PACKAGE_IRISGROUP $ISC_PACKAGE_INSTALLDIR/iris.cpfUSER $ISC_PACKAGE_MGRUSER
Hi Maik,
changePassword.sh is still in the container, but its location has moved. It is in the PATH for your container, so if you delete the absolute-path portion and use "changePassword.sh /durable/password_copied.txt" you should be up and running.
changePasswordHash.sh is an internal tool and we don't recommend customers use it.
Hope this helps.