Dcm4chee 官方给的镜像是 pgsql,但在实际业务中需要使用 Mysql 数据库,这里就需要使用源码或直接下载 github 上提供的 mysql 版本二进制分发包,制作 docker 镜像。
1.下载
mysql 版二进制分发包:
https://sourceforge.net/projects/dcm4che/files/dcm4chee-arc-light5/5.26.0/
dcm4che-dockerfiles:
https://github.com/dcm4che-dockerfiles/dcm4chee-arc-psql
2、准备文件
解压 dcm4che-dockerfiles/dcm4chee-arc-psql,并将二进制分发包中 deploy 文件夹 复制到 dcm4che-dockerfiles 中,将二进制分发包里 jboss-modules 中 zip 文件解压到 jboss-modules。
3.修改数据库配置
官方镜像里默认使用的是 postgresql,这里需要将数据库配置改成 mysql。
修改 dcm4che-dockerfiles/dcm4chee-arc-psql 中 configuration 里dcm4chee-arc.xml和dcm4chee-arc-logstash.xml文件,将 pgsql 驱动改为 mysql。
4.LDAP
version: "3"services: ldap: image: dcm4che/slapd-dcm4chee:2.6.0-26.0 #端口映射 ports: - "389:389" - "636:636" #卷挂载 volumes: - /opt/openldap/ldap:/var/lib/openldap/openldap-data - /opt/openldap/slapd.d:/etc/openldap/slapd.d # 环境变量设置 environment: LDAP_BASE_DN:dc=dcm4che,dc=org LDAP_ROOTPASS:secret ARCHIVE_DEVICE_NAME:dcm4chee-arc AE_TITLE:DCM4CHEE DICOM_PORT:11112 HL7_PORT:2575 STORAGE_DIR:/storage/fs1
复制代码
进入容器: docker exec -it 【CONTAINER ID】sh
验证:
1、安装 Apache Directory Studio
2、输入 IP 和 Port
3、输入 user 和 password
5.MySQL
执行 dcm4chee-arc 二进制分发包中 sql 文件夹里 sql 脚本。
create-mysql.sql
create-fk-index.sql
6.dockerfile
修改dcm4che-dockerfiles/dcm4chee-arc-psql 中 Dockerfile 文件
FROM dcm4che/wildfly:ffmpeg-24.0.1-15.1.0MAINTAINER bird/20220209ENV DCM4CHEE_ARC_VERSION 5.26.0ENV DCM4CHE_VERSION ${DCM4CHEE_ARC_VERSION}
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezoneRUN cd $JBOSS_HOME \&& chown -R wildfly:wildfly $JBOSS_HOME/modules \&& chown wildfly:wildfly *
COPY jboss-modules/dcm4che-jboss-modules-5.26.0/modules $JBOSS_HOME/modulesCOPY jboss-modules/ecs-object-client-jboss-modules-3.0.0/modules $JBOSS_HOME/modulesCOPY jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04/modules $JBOSS_HOME/modulesCOPY jboss-modules/jclouds-jboss-modules-2.4.0-noguava/modules $JBOSS_HOME/modulesCOPY jboss-modules/jdbc-jboss-modules-mysql-8.0.25/modules $JBOSS_HOME/modulesCOPY deploy /docker-entrypoint.d/deployments/COPY setenv.sh /COPY --chown=wildfly:wildfly configuration /docker-entrypoint.d/configuration
# Default configuration: can be overridden at the docker command lineENV LDAP_URL=ldap://ldap:389 \LDAP_BASE_DN=dc=dcm4che,dc=org \KEYSTORE=/opt/wildfly/standalone/configuration/keystores/key.p12 \KEYSTORE_TYPE=PKCS12 \TRUSTSTORE=/opt/java/openjdk/lib/security/cacerts \TRUSTSTORE_TYPE=JKS \ EXTRA_CACERTS=/opt/wildfly/standalone/configuration/keystores/cacerts.p12
复制代码
7.build
#进入目录cd /opt/dcm4chee-arcll#执行Dockerfiledocker build -t 【镜像名】:【版本号】 .
复制代码
8、push
docker login --username=jsa****@163.com registry.cn-zhangjiakou.aliyuncs.com#重命名docker tag [ImageId] registry.cn-zhangjiakou.aliyuncs.com/i-pixel/dcm4chee-arc:[镜像版本号]#推镜像docker pull registry.cn-zhangjiakou.aliyuncs.com/i-pixel/dcm4chee-arc:[镜像版本号]
复制代码
9.run
STORAGE_DIR=/storage/fs1#这里用的DB是阿里云的RDSMYSQL_HOST=XXXXXXXXXX.mysql.xxx.rds.aliyuncs.comMYSQL_PORT=3306MYSQL_DB=pacsdbMYSQL_USER=【DB用户名】MYSQL_PASSWORD=【DB密码】ARCHIVE_HOST=gunter-dell.lan.j4care.comLDAP_URL=ldap://【IP】:【port】WILDFLY_WAIT_FOR=【IP】:【port】 XXXXXXXXXX.mysql.xxx.rds.aliyuncs.com:【port】
复制代码
version: "3"services: arc: image: registry.cn-zhangjiakou.aliyuncs.com/i-pixel/dcm4chee-arc:5.26.0.1 ports: - "8080:8080" - "8443:8443" - "9990:9990" - "9993:9993" - "8787:8787" - "11112:11112" - "2762:2762" - "2575:2575" - "12575:12575" env_file: docker-compose.env environment: WILDFLY_ADMIN_USER: admin WILDFLY_ADMIN_PASSWORD: admin WILDFLY_CHOWN: /opt/wildfly/standalone /storage JAVA_OPTS: -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -agentlib:jdwp=transport=dt_socket,address=*:8787,server=y,suspend=n volumes: - /opt/dcm4chee-arc/wildfly:/opt/wildfly/standalone - /mnt/dicom:/storage
复制代码
执行:docker-compose up -d
进入系统:http://【IP】:8080/dcm4chee-arc/ui2/#/
导入 LDAP 配置项:sample-config.ldif:https://gitee.com/jsaltar/dcm4chee-arc-docker-image/blob/master/config/sample-config.ldif
评论 (1 条评论)