Found one more thing. Kind of a useful new feature LOAD DATA. But why does it use external java and consumes so precious connections? So, I get issues like this.

08/03/2022 18:50:52 - INFO: Running SQL Statement: Loading file sample_file.csv:
LOAD BULK %NOJOURN DATA FROM FILE '/home/irisowner/taxi/data/sample_file.csv' INTO NYTaxi.RowRides (VendorID,tpep_pickup_datetime,tpep_dropoff_datetime,passenger_count,trip_distance,RatecodeID,store_and_fwd_flag,PULocationID,DOLocationID,payment_type,fare_amount,extra,mta_tax,tip_amount,tolls_amount,improvement_surcharge,total_amount) USING '{ "from": {"file": {"columnseparator":",", "header": true } } }'
08/03/2022 18:50:52 - INFO: Preparing Loading file sample_file.csv - OK
08/03/2022 18:51:53 - ERROR: Error executing Loading file sample_file.csv: ERROR #5023: Remote Gateway Error: Connection cannot be established
08/03/2022 18:51:53 - INFO: Finished loading NYTaxi.RowRides in 60.28s

And there one another issue, which I often see, when using external languages. The connection waits is 60 seconds, and fails, why it does not fail fast? It already knows that there are no licenses/connections left, what is the reason of wait?

docker-compose is just a wrapper around Docker. 

But anyway, I'm sure you can still use docker no matter what environment you have. As soon as you can run any virtual machine hypervisor, you can even use a separate machine from yours. Yeah, there are probably some limitations, but not sure if they are not solvable. I'm not a Windows user at all.

Since the beginning of the era of Docker, there was a way, named docker-machine, but I suppose it's not in development anymore.

There is a possibility to install client only on windows, and there was a way to connect it to any external docker server by setting environment variable DOCKER_HOST

Please, next time, when you spontaneously add flags and remove flags or features that prevent starting IRIS in Docker, think about end-users, who would need, to run different versions of IRIS, it makes it more complicated to follow all those changes. One version does not work with flags, another does not work with this flag. We need something more stable. When I need to configure the CI process for multiple versions, now I should somehow decide which version has this flag and which has not.

Short answer, Yes. 

During docker build, just execute it, the same way, you doing anything when configure IRIS

While docker container starts, you can execute script, which will be called after start of IRIS

Just add it in the Dockerfile, trainmodel.sh, should contain iris session script to start model train

CMD ["-a", "/trainmodel.sh"]

Is it possible to get also some stability in containers?

Here is the list of tags available on containers.intersystems.com

requesting list . done
repository: intersystems/irishealth-community
tags:
- 2020.1.1.408.0
- 2020.3.0.221.0
- 2020.4.0.547.0
- 2021.1.0.215.3
- 2022.1.0.152.0
- 2022.1.0.164.0
- 2022.1.0.172.0

Where is 2021.2?

And for the licensed version

repository: intersystems/irishealth
tags:
- 2019.1.1.615.1
- 2019.1.3.722.0
- 2020.1.0.217.1
- 2020.1.1.408.0
- 2020.1.2.517.0
- 2020.2.0.211.0
- 2020.3.0.221.0
- 2020.4.0.547.0
- 2021.1.0.215.0
- 2021.1.2.338.0
- 2021.2.0.651.0
- 2022.1.0.152.0
- 2022.1.0.164.0
- 2022.1.0.172.0

The only place where available 2021.2 CE version, is on Docker Hub, which now says it's deprecated, without any announcements. Just closed one of the ways used to download images.