Hello Marcus,

Thank you for sharing.

I'm building a dockerised DEV environnement.

The main issue I am encountering at this moment is the modification from the portal of Business Process or Transform for exemple. I have to export manually my new processes. If I forget it, I just lose it ...

I try to install and configure GIT directly on my image.

The aim is to link my local repo to the container. I don't want GIT at all. This way, I will have a automatical export.

But, it is quite difficult to use in command line.

I always have to perform an INIT when I start my container.

I tried to perform an init from my DockerFile (do ##class(SourceControl.Git.Utils).UserAction("","%SourceMenu,Init")) but it does not work.

Do you have a clean way to install and configure GIT from a DockerFile ?

Thanks

Regards,

Matthieu.

My iris start in my DockerFile :

RUN iris start IRIS \

    && iris session IRIS -U %SYS < /tmp/iris.script \

    && iris stop IRIS quietly

my iris.script :

    //On installe ZPM

    set $namespace="%SYS", name="DefaultSSL" do:'##class(Security.SSLConfigs).Exists(name) ##class(Security.SSLConfigs).Create(name) set url="https://pm.community.intersystems.com/packages/zpm/latest/installer" Do ##class(%Net.URLParser).Parse(url,.comp) set ht = ##class(%Net.HttpRequest).%New(), ht.Server = comp("host"), ht.Port = 443, ht.Https=1, ht.SSLConfiguration=name, st=ht.Get(comp("path")) quit:'st $System.Status.GetErrorText(st) set xml=##class(%File).TempFilename("xml"), tFile = ##class(%Stream.FileBinary).%New(), tFile.Filename = xml do tFile.CopyFromAndSave(ht.HttpResponse.Data) do ht.%Close(), $system.OBJ.Load(xml,"ck") do ##class(%File).Delete(xml)

   

    do ##class(%SYSTEM.Process).CurrentDirectory("/opt/irisapp")

    //On charge les installer et les deployer

    do $SYSTEM.OBJ.Load("InstallerLibrary.cls", "ck")

    //On installe les namespaces

    set sc = ##class(App.InstallerLibrary).setup()

   

    // Je ne sais pas pourquoi mais je dois redéfinir le dossier de travail

    do ##class(%SYSTEM.Process).CurrentDirectory("/opt/irisapp")

    //On importe les default settings + le plugin GIT (SURTOUT LAISSER LES PASSAGES A LA LIGNE)

    zn "LIBRARY"

    zpm "install git-source-control"

    d ##class(SourceControl.Git.API).Configure()

/irisdev/app/LIBRARY/

   

    // Pour éviter de devoir modifier le mdp SuperUser.

    zn "%SYS"

    w ##class(Security.Users).UnExpireUserPasswords("*")

     // Pour faire fonctionner le plugin Git, il faut que le path défini existe, par défaut il est à chaine vide et cela fait planter le plugin. En l'enlevant cela fonctionne

    k ^SYS("SourceControl","Git","%gitBinPath")

   

    zn "LIBRARY"

    do ##class(SourceControl.Git.Utils).UserAction("","%SourceMenu,Init")

    halt