文章
· 十月 28 阅读大约需 6 分钟

IRIS images的下载和简单的搭建测试环境

IRIS image下载

参考:下载Images的在线文档

https://containers.intersystems.com网站上获得可以下载的InterSystems的各种docker镜像。如果只是安装Community版本, 不需要注册。如果是下载安装正式的版本,需要在网站注册,然后获得Login Token登陆。

#;这一部有可能需要科学上网,否则无法正常登陆

hma@CNMBP23HMA ~ % docker login -u="hma" -p="k8zIqpoafIUaViP2BA4gCZdcC4EeKyb0svSjnyVtcWMb" containers.intersystems.com
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded

# pull iris image,webgateway,Passhash, arbiter, etc.
hma@CNMBP23HMA ~ % docker pull containers.intersystems.com/intersystems/healthconnect-arm64:latest-cd
hma@CNMBP23HMA ~ % docker pull containers.intersystems.com/intersystems/webgateway-arm64:latest-cd
...

Tips

  • 下载社区(Community)版本的镜像不用在网站注册,使用时也不需要安装license。社区版内置内置了一个13个月的license。而正式版本IRIS Continer安装需要从InterSystems处获得IRIS docker版的专用license。

  • 标记latest-cd(Continuous delivery)latest-em(Extended maintenance), latest-preview是最新的"持续交付"版本, "扩展维护"版本,以及"开发预览版"。 您也可以选择指定专门的版本,比如当前最新的GA版本2024.2。同时,如果硬件是ARM芯片,请选择带有“-arm64"后缀的版本。

  • WebGateway-nginx是nginx服务器的版本,而WebGateway镜像内置了apache2服务。

简单的搭建测试环境

我要使用的iris 2024的版本,其中再没有之前的内置的PWS(Private Web Server), 也就是说您当前以及无法从http://localhost:52773/csp/sys/UtilHome.csp登录管理门户了。因此我用docker-compose来创建下面的例子。docker-compose用来编排多个container共同工作。它自动的创建一个单独的docker network, 其中的所有service, 也就是docker container可以通过container name通信。

如果是简单的测试环境, 可以直接用docker run运行IRIS Container。 我们先来run一个最简单的社区版:

compose.yaml

services:
    iris-a:      
        image: containers.intersystems.com/intersystems/irishealth-community-arm64:2024.2
        container_name: iris-a
        hostname: irisa
        ports:
            - 1980:1972
            - 52773:52773
        environment:
            - TZ=CST-8
    webgateway-apache:
        image: containers.intersystems.com/intersystems/webgateway-arm64:2024.1
        container_name: wg-apache
        hostname: wg-apache
        ports:
            - "8080:80"
        environment:
            - TZ=CST-8

说明两点: 1. 在IRIS2024中52773端口已经无法使用,所以不需要再被映射到主机。 2. TZ=CST-8是把container的时区设置为上海。

运行后可以看到两个container都已经工作

hma@CNMBP23HMA demo % docker-compose up -d
[+] Running 3/3
 ✔ Network demo_default  Created                                                                                         0.0s
 ✔ Container wg-apache   Started                                                                                         0.0s
 ✔ Container iris-a      Started                                                                                         0.0s
hma@CNMBP23HMA demo % docker ps
CONTAINER ID   IMAGE                                                                        COMMAND                 CREATED         STATUS         PORTS                                                               NAMES
cfa4cc730c14   containers.intersystems.com/intersystems/irishealth-community-arm64:2024.2   "/tini -- /iris-main"   6 seconds ago   Up 5 seconds   2188/tcp, 52773/tcp, 53773/tcp, 54773/tcp, 0.0.0.0:1980->1972/tcp   iris-a
63e983d90034   containers.intersystems.com/intersystems/webgateway-arm64:2024.1             "/startWebGateway"      6 seconds ago   Up 5 seconds   0.0.0.0:8080->80/tcp, 0.0.0.0:4433->443/tcp                         wg-apache
hma@CNMBP23HMA demo %

查看iris container

这时,虽然还无法登录iris的管理门户,您可以使用docker exec进入iris container查看iris实例已运行。 注意两点:

  1. 默认登录的用户是irisowner
  2. IRIS的安装路径是/usr/irissys.
hma@CNMBP23HMA installer_cch % docker ps
CONTAINER ID   IMAGE                                                              COMMAND                 CREATED         STATUS         PORTS                                                                              NAMES
59e2424757db   containers.intersystems.com/intersystems/irishealth-arm64:2024.1   "/tini -- /iris-main"   6 seconds ago   Up 5 seconds   0.0.0.0:1972->1972/tcp, 2188/tcp, 53773/tcp, 0.0.0.0:52773->52773/tcp, 54773/tcp   iris
hma@CNMBP23HMA installer_cch % docker exec -it iris bash
irisowner@59e2424757db:~$ iris list

Configuration 'IRIS'   (default)
    directory:    /usr/irissys
    versionid:    2024.1.0.263.0
    datadir:      /usr/irissys
    conf file:    iris.cpf
    status:       running, since Wed Oct 23 12:32:45 2024
    SuperServers: 1972
    state:        warn
    product:      InterSystems IRISHealth
irisowner@59e2424757db:~$ iris session iris
Node: 59e2424757db, Instance: IRIS

USER>halt
irisowner@59e2424757db:~$

查看Webgateway Container

  1. 从浏览器打开 http://localhost:8080, 可以看到apache2的主页面。
  2. 访问http://localhost:8080/csp/bin/Systems/Module.cxw?CSPSYS=0&CSPSYSreferer=...,可以进入Webgateway的配置页面。 这里一定注意:访问http://localhost:8080/csp/bin/Systems/Module.cxw会得到500错误。当前状态下一定要带着参数访问这个网址。
  3. 配置webgateway到iris的连接:在当前页面,你需要设置。
    • Server Local的IP/DNS和Port:这里是iris container的名字iris-a,和iris-a container的superserver端口1972
    • 登录iris的账户密码:CSPSystem, SYS

保存设置,然后在"Test Server Connection"页面测试连接,你将看到连接成功的结果。

  1. 尽量webgateway已经成功连接了IRIS, 但配置还没有完。要成功访问IRIS管理页面,你需要修改一个apache2的配置文件CSP.conf

    • 使用docker exec -it wg-apache bash进入container.
    • 修改/etc/apache2/mods-available/CSP.conf配置文件,如下:
    # 原始文件的内容
    
    CSPModulePath "${ISC_PACKAGE_INSTALLDIR}/bin/"
    CSPConfigPath "${ISC_PACKAGE_INSTALLDIR}/bin/"
    
    <Location "/csp/bin/Systems/">
        SetHandler csp-handler-sa
    </Location>
    <Location "/csp/bin/RunTime/">
        SetHandler csp-handler-sa
    </Location>
    <Directory "${ISC_PACKAGE_INSTALLDIR}/bin/">
        AllowOverride None
        Options None
        Require all granted
        <FilesMatch "\.(log|ini|pid|exe)$">
             Require all denied
        </FilesMatch>
    </Directory>
    
    # 自己添加的内容
    <Location "/csp">
        CSP On
    </Location>
    <Location "/api">
        CSP On
    </Location>
    <Location "/isc">
        CSP On
    </Location>
    
    • 用命令行service apache2 restart重启apache2, 或者从container里退出重启wg-apache container.
    • 从浏览器访问http://localhost:8080/csp/sys/UtilHome.csp, 您应该已经可以成功访问IRIS了。

总结

虽然题目是'简单的搭建测试环境', 但实际上还是有非常多的步骤,主要是集中在webgateway到IRIS的连接上。 如果您熟悉docker-compose,您知道这样人工的配置一个container是不合适的。而后面的章节我会专门有一章节如何在docker-compose里自动配置webgateway。之所以还要介绍webgateway的人工配置步骤,是因为这些知识是自动配置webgateway的背景知识,而且在做debug时非常关键。

另外,后面我还会介绍webgateay-nginx的配置。

讨论 (0)1
登录或注册以继续