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.0
MAINTAINER bird/20220209
ENV DCM4CHEE_ARC_VERSION 5.26.0
ENV DCM4CHE_VERSION ${DCM4CHEE_ARC_VERSION}
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN 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/modules
COPY jboss-modules/ecs-object-client-jboss-modules-3.0.0/modules $JBOSS_HOME/modules
COPY jboss-modules/jai_imageio-jboss-modules-1.2-pre-dr-b04/modules $JBOSS_HOME/modules
COPY jboss-modules/jclouds-jboss-modules-2.4.0-noguava/modules $JBOSS_HOME/modules
COPY jboss-modules/jdbc-jboss-modules-mysql-8.0.25/modules $JBOSS_HOME/modules
COPY 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 line
ENV 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-arc
ll
#执行Dockerfile
docker 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是阿里云的RDS
MYSQL_HOST=XXXXXXXXXX.mysql.xxx.rds.aliyuncs.com
MYSQL_PORT=3306
MYSQL_DB=pacsdb
MYSQL_USER=【DB用户名】
MYSQL_PASSWORD=【DB密码】
ARCHIVE_HOST=gunter-dell.lan.j4care.com
LDAP_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 条评论)