Hi Developers!
InterSystems Package Manager (ZPM) is a great thing, but it is even better if you don't need to install it but can use immediately.
There are several ways how to do this and here is one approach of having IRIS container with ZPM built with dockerfile.
I've prepared a repository which has a few lines in dockerfile which perform the download and install the latest version of ZPM.
Add these lines to your standard dockerfile for IRIS community edition and you will have ZPM installed and ready to use.
To download the latest ZPM client:
RUN mkdir -p /tmp/deps \ && cd /tmp/deps \ && wget -q https://pm.community.intersystems.com/packages/zpm/latest/installer -O zpm.xml
to install ZPM into IRIS:
" Do \$system.OBJ.Load(\"/tmp/deps/zpm.xml\", \"ck\")" \
Great!
To try ZPM with this repository do the following:
$ git clone https://github.com/intersystems-community/objectscript-zpm-template.git
Build and run the repo:
$ docker-compose up -d Open IRIS terminal: $ docker-compose exec iris iris session iris USER>
Call ZPM:
USER>zpm zpm: USER>
Install webterminal
zpm: USER>install webterminal webterminal] Reload START [webterminal] Reload SUCCESS [webterminal] Module object refreshed. [webterminal] Validate START [webterminal] Validate SUCCESS [webterminal] Compile START [webterminal] Compile SUCCESS [webterminal] Activate START [webterminal] Configure START [webterminal] Configure SUCCESS [webterminal] Activate SUCCESS zpm: USER>
Use it!
And take a look at the whole process in this gif:
It turned out, that we don't need a special repository to add ZPM into your docker container.
You just need another dockerfile - like this one. And here is the related docker-compose to make a handy start.
See how it works: