Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to install IPM client to a custom container image economically? #625

Open
janihur opened this issue Nov 19, 2024 · 4 comments
Open

How to install IPM client to a custom container image economically? #625

janihur opened this issue Nov 19, 2024 · 4 comments
Labels
customer documentation Improvements or additions to documentation

Comments

@janihur
Copy link

janihur commented Nov 19, 2024

I'm creating a customized IRIS Docker image and installing IPM to the image.

An unfortunate side effect is that IPM installation affects the system database that increases the image size by 2.7GB. The size increase can be mostly mitigated with a multi-stage build (down to ~130MB), see e.g. grongierisc/iris-docker-multi-stage-script. However I'm not completely satisfied to this method as one still have to touch the system database. However AFAIK this seems to be the best option at the moment or do you have any other ideas?

In the long term I'd like to see IPM an integral out-of-the-box IRIS utility (in the same fashion than e.g. %Unittest) with the self-update ability.

@isc-tleavitt
Copy link
Contributor

isc-tleavitt commented Nov 19, 2024

@janihur see https://github.com/intersystems-community/zpm-dockerhub/blob/master/Dockerfile which:

  • Is also published to Docker Hub (you're certainly welcome to build your own version though!!)
  • Is going to change significantly very, very soon with the release of 0.9 (I'm actively looking at this)

"Integral out-of-the-box IRIS utility" is in the works, although to support self-update it's going to be a little different (specifically, won't be in IRISLIB).

@isc-tleavitt isc-tleavitt added question Further information is requested customer labels Nov 19, 2024
@evshvarov
Copy link
Collaborator

evshvarov commented Nov 20, 2024 via email

@janihur
Copy link
Author

janihur commented Nov 20, 2024

@isc-tleavitt If I read correctly https://github.com/intersystems-community/zpm-dockerhub/blob/727ef174fbaf40386d37ad5e08066253c0522d35/Dockerfile#L3 this is the "magic sauce" to install the IPM into dedicated database and then made available to all other namespaces by mapping? Cool!

This is yet another IPM related "recipe" that should be part of the famous "IPM for Dummies" book ;) thought this might be temporary solution.

I bookmark this now and wait for the very, very soon ;) released v0.9. I'll apply the new practice then to my image too and report it here (and close the ticket).

@janihur
Copy link
Author

janihur commented Nov 20, 2024

@evshvarov If you read the question carefully you'd see I'm already applying the multi-stage build trick I found from grongierisc/iris-docker-multi-stage-script. The article seems to have exactly the same content ;) The article is still nice and I bookmarked it (you should label the article as a best practice)!

@isc-tleavitt isc-tleavitt added documentation Improvements or additions to documentation and removed question Further information is requested labels Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
customer documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants