Applying a production to namespace in docker image
Hi all
I'm testing migrating our existing installers (without ZPM) using the docker dev template as a basis with a commercial image and licence key.
So far everything builds as I expect, but the one issue I have is the production doesn't apply itself automatically.
In my iris.script I have custom installer that uses this manifest below but it does not observe the last three steps
<Namespace Name="${DataNamespace}" Create="no">
<Invoke name="Credentials" Class="GOJ.IrisApp.Install.ApplicationLayer" Method="AddCredentials" CheckStatus="1">
<Arg name ="Namespace" Value="${DataNamespace}" />
<Arg name ="Environment" Value="${Environment}" />
</Invoke>
<Invoke Class="GOJ.IrisApp.Install.ApplicationLayer" Method="AddLookupTables" CheckStatus="1" >
<Arg name ="Namespace" Value="${DataNamespace}"/>
<Arg name ="Environment" Value="${Environment}" />
</Invoke>
<Invoke Class="GOJ.IrisApp.Install.ApplicationLayer" Method="AddSchedules" CheckStatus="1" >
<Arg name ="Namespace" Value="${DataNamespace}"/>
<Arg name ="Environment" Value="${Environment}"/>
</Invoke>
<Invoke Class="GOJ.IrisApp.Install.DefaultSettings" Method="Load" CheckStatus="1" >
<Arg name ="Namespace" Value="${DataNamespace}"/>
<Arg name ="Environment" Value="${Environment}"/>
</Invoke>
<Compile Class="${ProductionName}" Flags="ckb" IgnoreErrors="0" />
<Invoke Class="Ens.Director" Method="SetAutoStart" CheckStatus="1" >
<Arg Value="${ProductionName}" />
</Invoke>
<Invoke Class="Ens.Director" Method="StartProduction" CheckStatus="1" >
<Arg name ="ProductionName" Value="${ProductionName}"/>
</Invoke>
</Namespace>
As a workaround I do a compile in iris.script as a last step - this make the production visible in the auto start dropdown without me needing to compile it.
//TODO: Not working in installer
zn "IRISAPP"
do $SYSTEM.OBJ.Compile("GOJ.IrisApp.Production*","ckb")
halt
But I still need to log onto the management portal and apply the production and autostart my namespace manually OR I can use the commands in terminal below:
zn "IRISAPP"
do ##class(Ens.Director).SetAutoStart("GOJ.IrisApp.ProductionDev")
do ##class(Ens.Director).StartProduction("GOJ.IrisApp.ProductionDev")
I tried to add these to the end of iris.script but nothing happens. Is there another place in the process I should try and run this so I can automate it?
Articles that i've looked at:
InterSystems Open Exchange (dev template using)
Production is not auto starting while using container | InterSystems (alternative method
Thanks
Dan