Question
· Oct 10, 2023

Creating a Custom IRIS Container

I think there have been articles published here before but I'm struggling to find them:

I'd like to be able to create my own customised version of the official IRIS Community Edition Container, eg with Node.js and a number of modules pre-installed.  So, for example, can I create my own Dockerfile that begins with something like:

         FROM containers.intersystems.com/intersystems/iris-community-arm64:2023.2.0.227.0

and then I can add my own stuff to it?

... or is there another recommended approach?

Any info appreciated

Discussion (4)2
Log in or sign up to continue

While we have multiple architectures, it makes now it quite tricky to make IRIS for both x64 and arm64

You can look at this example, where we build IRIS Community with ZPM

IRIS ARM64 does not work in emulated arm64, so, when you use some CI, which supports only x64 and offers qemu emulation to run ARM64 it will probably not work

So, you may try do not start iris inside ARM64 builder, but just add some binires required

I'm happy, for this exercise, to just limit it to just the ARM version.  I've currently manually customised the container, but I'd like to automate the process so I can restart it in a customised state without repeating the manual steps all over again.  Your example is therefore a lot more complex than I need.

I could, of course, add a bash script file that is accessed via a shared volume and executed to do the customisation, but a Dockerfile would be easier if it was possible.

I think this is something that others may want to be able to do too?

OK to answer my own question, it looks like I can create a Dockerfile like this simple example:

        FROM containers.intersystems.com/intersystems/iris-community-arm64:2023.2.0.227.0

        USER root

        RUN apt update && apt install -y \

          wget \

          curl \

          locate \

          nano 

        USER irisowner

It appears to build a customised version of the community edition that can then be started in the usual way.  The key piece is switching USER to root and then back again to irisowner before the end of the Dockerfile.