iris-docker-multi-stage-script

A python script to keep your docker iris images in shape ;)

Witout changing your dockerfile or your code you can reduce the size of your image by 50% or more !

TL;DR

Name the builder image builder and the final image final and add this to end of your Dockerfile:

Modify your Dockerfile to use a multi-stage build:

ARG IMAGE=intersystemsdc/irishealth-community:latest
FROM $IMAGE as builder

Add this to end of your Dockerfile:

FROM $IMAGE as final

ADD --chown=${ISC_PACKAGE_MGRUSER}:${ISC_PACKAGE_IRISGROUP} https://github.com/grongierisc/iris-docker-multi-stage-script/releases/latest/download/copy-data.py /irisdev/app/copy-data.py

RUN --mount=type=bind,source=/,target=/builder/root,from=builder \
    cp -f /builder/root/usr/irissys/iris.cpf /usr/irissys/iris.cpf && \
    python3 /irisdev/app/copy-data.py -c /usr/irissys/iris.cpf -d /builder/root/ 

Boom! You're done!

14 10
7 717

I have challenged to create a bot application using Azure Bot that can retrieve and post data to IRIS for Health.

A patient's data has already been registered in the FHIR repository of IRIS for Health.

The patient's MRN is 1001. His name is Taro Yamada. (in Japanese :山田 太郎)

This bot can post new pulse oximeter readings as an observation resource linked to the patient.

13 2
2 356

For practical reasons, it may be desirable that after a Linux server restart, the IRIS instance is automatically started.

Below you will find the steps to follow to automate the startup of IRIS during a reboot of the Linux server, via systemd :

1. Create an iris.service file in /etc/systemd/system/iris.service containing the following information

6 17
4 433

InterSystems IRIS Adaptive Analytics version 2024.1.3 is now available from the InterSystems Software Distribution page. This release includes AtScale 2024.1.3, and an updated User Defined Aggregate Function (UDAF) file. This release includes and the following new modeling and BI capabilities:

0 0
0 90

Hello,
A customer whose Ensemble code contains lots of hardwired API URL calls is running into issues because of the IRIS instance name insertion in the URL path since IRIS v 2024.1.

What are the best solutions to revert to the previous URL path or automatically and dynamically rewrite this path (Apache mod_rewrite ? Proxies ?). Any examples ?

Thanks for your help,
Bertrand Cayzac

0 0
0 62

Hello everyone,

I'm currently working on getting familiar with OAuth2, following this article. Since Part 2 involves using PKI, I decided to implement it as outlined in the article. However, I've run into an issue that I can't seem to resolve, and my searches on Google haven't yielded any useful results.

Here's a brief overview of what I've done so far:

Configuring the PKI Server:

0 1
0 70

Dear All,

I am currently part of a team that is developing an application using Microsoft PowerApps as the front end and IRIS as the backend. Effectively that frontend screens, which are house and an Azure serve, call a series of REST interfaces exposed by IRIS from a physical Microsoft server. During the development stage we have not had any security in place but now we need to secure the application using a single sign on. PowerApps relies on Microsoft Entra for its security both LDAP and OAuth. Has anyone in the community connected IRIS to Microsoft Entra?

0 2
0 134
Article
· Aug 19 4m read
Accessing Azure Blob Storage

Accessing an Azure cloud storage to upload/download blobs is quite easy using the designated %Net.Cloud.Storage.Client class API methods, or using the EnsLib.CloudStorage.* inbound/outbound adaptors.

Note that you'll need to have the %JavaServer External Language Server up and running to use the cloud storage API or adaptors, since they both use the PEX framework using the Java Server.

Here is a quick summary:

8 0
2 130

Dear ladies and gentlemen, in the last month I've improved my Tool Caché Monitor... but first: the name

The name Caché Monitor was chosen to reflect the close integration of the tool with the Caché database. The established name Intersystems Caché will likely be completely replaced by InterSystems IRIS Data Platform in the foreseeable future I think. So a rebranding step became necessary. In order to be less closely tied to a product name in the future, a new name has been chosen to be more neutral: SQL Data Lens

4 4
1 567

Suppose you have an application that allows users to write posts and comment on them. (Wait... that sounds familiar...)

For a given user, you want to be able to list all of the published posts with which that user has interacted - that is, either authored or commented on. How do you make this as fast as possible?

Here's what our %Persistent class definitions might look like as a starting point (storage definitions are important, but omitted for brevity):

11 3
5 397

Hi Community,

Play the new video on InterSystems Developers YouTube:

Introducing Managed Solution for Asset Management @ Global Summit 2023

https://www.youtube.com/embed/sbnVcg-6c5o
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

0 0
0 59

iris | [ERROR] Command "iris start IRIS quietly" exited with status 256
iris |
iris |
iris |
iris | *** Recovery started at Thu Aug 15 05:47:48 2024
iris | Current default directory: /usr/irissys/mgr
iris | Log file directory: /usr/irissys/mgr/
iris | WIJ file spec: /usr/irissys/mgr/IRIS.WIJ
iris | Recovering local (/usr/irissys/mgr/IRIS.WIJ) image journal file...
iris | Starting WIJ recovery for '/usr/irissys/mgr/IRIS.WIJ'.
iris | 0 blocks pending in this WIJ.
iris | Exiting with status 3 (Success)

0 2
0 79

There are a lot of great community articles regarding "vector search on IRIS", and samples in OpenExchange. Everytime I see these, I'm so excited to know that so many developers already try vectors on IRIS!

But if you've not tried "Vector Search on IRIS" yet, please give me one minute 😄 I create one IRIS class - and with only one IRIS class you can see how you put vector data in your IRIS database and how you compare these in your application.

4 0
2 130

InterSystems FAQ rubric

Temporary globals stored in the IRISTEMP/CACHETEMP databases are used when a process does not need to store data indefinitely, but requires the powerful performance of globals. The IRISTEMP/CACHETEMP databases are not journaled, so using temporary globals does not create journal files.

The system uses the IRISTEMP/CACHETEMP databases for temporary storage and are available to users for the same.

2 0
3 156

If anyone has experience debugging Embedded Python or has insight into why an ObjectScript method when called from a Python method would not work but would work when called directly via ObjectScript or in a Python shell, your help would be appreciated!

We have an ObjectScript ClassMethod called GetTemplateString() which takes in a templateName of String type and uses the template name to get the template object, access the Code, and read the code into a templateString. The string version of the Code is returned.

0 2
0 99

Today we have an unusual code golf: build a program (using only printable ASCII characters, tabs and newlines) that prints out exactly the characters in the printable ASCII space (characters 32 to 126) that don't appear in your program's source code (in any order, however many times you want).

As usual, the goal is to produce the shortest code to do this.

My (admittedly not very good, but does the job!) entry:

3 22
0 270