1.创建一个目录,在该目录下创建一个文件夹用于保存相关文件:
mkdir gdcm
cd gdcm
mkdir docker-demo
2.将对应安装包上传到docker-demo目录下,
这里用到的有cmake、gdcm、swig三个安装包
3.在docker-demo目录下创建Dockerfile
vim Dockerfile
4.具体配置如下:
5.这里安装gdcm有个问题:如果单纯使用cmake命令安装,那swig安装会有问题,而使用ccmake安装,执行Dockerfile时会出现以下状况:
这是ccmake可视化安装界面,但是我们在使用Dockerfile安装时是无法输出c进行选择的。(也许可以通过命令行配置参数解决这个问题,但是作者水平有限,弄了2天也没弄明白)
6.我们用另一种方式解决这个问题:
1)首先返回上一级目录(即gdcm目录下),创建docker-compose.yml文件
vim docker-compose.yml
内容如下
build:执行docker-demo下的Dockerfile文件
ports:执行的端口号
restart:重启规则
container_name:执行的名称
volumes:目录挂载
entrypoint:执行一个一直运行的命令,让docker跑起来
2)运行docke-compose
docker-compose up -d
3)进入docker容器内部
docker ps
docker exec -it 775c7c9ee1e1 /bin/bash
4)创建gdcmbin目录
mkdir gdcmbin
cd gdcmbin
5)执行ccmake 安装
ccmake ../gdcm-gdcm
按c键进行选择,键盘上下键移动光标到第3、8行按enter键将GDCM_BUILD_SHARED_LIBS 、GDCM_WRAP_JAVA改为ON,按c键结束(如果出现 SWIG_EXECUTABLE strap clas/usr/bin/swig3.0n conjunction with -source 1.7 ,再按一次c键 )、再按g键
6)ll,查看gdcmbin目录下
输入sz CMakeCache.txt命令将下载到本地。
7)退出容器,回到docker-demo目录下,将 CMakeCache.txt上传
8)继续编辑Dockerfile,加入以下命令
RUN cd gdcmbin && cmake ../gdcm-gdcm && rm -rf CMakeCache.txt && cp /usr/local/src/CMakeCache.txt /usr/local/src/gdcmbin/ && make -j8
这句命令是将cmake命令生成的CMakeCache.txt替换成之前在容器内部通过ccmkae命令生成的CMakeCache.txt。用于解决docker执行ccmake命令可视化界面无法输入命令问题
7.重新启动docker-compose
docker-compose down
docker-compose up -d
进入容器内部验证
上传class和dcm文件
java DecompressImage 11.dcm out.dcm
结果如下表示安装成功: