Docker vs. Durability
Working from home during these Corona-days I'm short on resources.
- no Linux machine available
- limited disk space
So I decided to give Docker in Windows 10 (named Docker Desktop) a try.
This worked nicely after some reboot (it's Windows ! ) and killing my VMware to have Hyper-V .
Next, I tried to implement Durable %SYS
And this was rather disappointing.
Independent of what IRIS container I used (released or preview or community edition) it crashed at start.
Using docker run -it ... (instead of -d) to see what's happening uncovered this strange error.
05/05/20-21:59:12:981 (364) 0 [Utility.Event] Executing rm -f /usr/irissys/bin/irisuxsinst
05/05/20-21:59:12:986 (364) 0 [Utility.Event] Executing rm -f /external/durable/CloneIncomplete
05/05/20-21:59:12:992 (364) 0 [Utility.Event] Instance IRIS data directory moved to /external/durable
05/05/20-21:59:12:993 (364) 0 [Utility.Event] Executing find /usr/irissys/ -type d -exec chmod ugo-w {} +
05/05/20-21:59:13:028 (364) 0 [Utility.Event] Executing chmod ugo-w /usr/irissys/
[ERROR] Possible causes:
[ERROR] - Incorrect user/group ownership of IRIS binaries
[ERROR] - Insufficient write permissions to ISC_DATA_DIRECTORY
[FATAL] Error starting InterSystems IRIS
The reasons are the high lighted lines
ISC_DATA_DIRECTORY had no protection at all and was not affected.
More detailed interactive tests showed a mismatch between file ownership and user in docker.
AS it happened with several IRIS containers I assume the problem in Desktop Docker and/or it'S underlying Windows 10.
As a workaround for me, I developed a customized lightweight durability solution that avoids this step.