栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

集成两个Docker应用-Docker compose和Docker run

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

集成两个Docker应用-Docker compose和Docker run

配置不起作用主要是因为应用程序未读取dockersupport-app.json。以下是基于项目在线文档的工作示例。

另一个问题是对dicomWeb服务器的访问。您正在使用pacsIP:8042,如果请求是从容器内部启动的,则可以。但这是一个javascript应用程序,该请求由主机上的浏览器启动。因此,应使用“
localhost”。

这是一个有效的配置:

version: '3.6'services:  mongo:   image: "mongo:latest"   container_name: ohif-mongo   ports:     - "27017:27017"  viewer:     image: ohif/viewer:latest     container_name: ohif-viewer     ports:       - "3030:80"     environment:       - MONGO_URL=mongodb://mongo:27017/ohif     volumes:      - ./config/default.js:/usr/share/nginx/html/config/default.js     depends_on:      - mongo      - proxy  orthanc:    image: jodogne/orthanc-plugins    ports:      - "4242:4242"      - "8042:8042"    volumes:      # Config      - ./config/orthanc.json:/etc/orthanc/orthanc.json:ro      # Persist data      - ./volumes/orthanc-db/:/var/lib/orthanc/db/    command: "/etc/orthanc --verbose"  proxy:    image: nginx:1.15-alpine    ports:      - 8899:80    volumes:      - ./config/nginx.conf:/etc/nginx/nginx.conf:ro    depends_on:       - orthanc    restart: unless-stopped

config 文件夹中放置文件:

default.js

window.config = {    // default: '/'    routerbasename: '/',    // default: ''    relativeWebWorkerscriptsPath: '',    servers: {      dicomWeb: [        {          name: 'DCM4CHEE',          wadoUriRoot: 'http://localhost:8899/wado',          qidoRoot: 'http://localhost:8899/dicom-web',          wadoRoot: 'http://localhost:8899/dicom-web',          qidoSupportsIncludeField: true,          imageRendering: 'wadouri',          thumbnailRendering: 'wadouri',          requestOptions: { requestFromBrowser: true, auth: "orthanc:orthanc", "logRequests": true, "logResponses": true,  "logTiming": true          },        },      ],    },    // Extensions should be able to suggest default values for these?    // Or we can require that these be explicitly set    hotkeys: [      // ~ Global      {        commandName: 'incrementActiveViewport',        label: 'Next Image Viewport',        keys: ['right'],      },      {        commandName: 'decrementActiveViewport',        label: 'Previous Image Viewport',        keys: ['left'],      },      // Supported Keys: https://craig.is/killing/mice      // ~ Cornerstone Extension      { commandName: 'rotateViewportCW', label: 'Rotate Right', keys: ['r'] },      { commandName: 'rotateViewportCCW', label: 'Rotate Left', keys: ['l'] },      { commandName: 'invertViewport', label: 'Invert', keys: ['i'] },      {        commandName: 'flipViewportVertical',        label: 'Flip Horizontally',        keys: ['h'],      },      {        commandName: 'flipViewportHorizontal',        label: 'Flip Vertically',        keys: ['v'],      },      { commandName: 'scaleUpViewport', label: 'Zoom In', keys: ['+'] },      { commandName: 'scaleDownViewport', label: 'Zoom Out', keys: ['-'] },      { commandName: 'fitViewportToWindow', label: 'Zoom to Fit', keys: ['='] },      { commandName: 'resetViewport', label: 'Reset', keys: ['space'] },      // clearAnnotations      // nextImage      // previousImage      // firstImage      // lastImage      {        commandName: 'nextViewportDisplaySet',        label: 'Previous Series',        keys: ['pagedown'],      },      {        commandName: 'previousViewportDisplaySet',        label: 'Next Series',        keys: ['pageup'],      },      // ~ Cornerstone Tools      { commandName: 'setZoomTool', label: 'Zoom', keys: ['z'] },    ],  };

nginx.conf

worker_processes 1;events { worker_connections 1024; }http {    upstream orthanc-server {        server orthanc:8042;    }    server {        listen [::]:80 default_server;        listen 80;        # CORS Magic        add_header 'Access-Control-Allow-Origin' '*';        add_header 'Access-Control-Allow_Credentials' 'true';        add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';        add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';        location / { if ($request_method = 'OPTIONS') {     add_header 'Access-Control-Allow-Origin' '*';     add_header 'Access-Control-Allow_Credentials' 'true';     add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';     add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';     add_header 'Access-Control-Max-Age' 1728000;     add_header 'Content-Type' 'text/plain charset=UTF-8';     add_header 'Content-Length' 0;     return 204; } proxy_pass         http://orthanc:8042; proxy_redirect     off; proxy_set_header   Host $host; proxy_set_header   X-Real-IP $remote_addr; proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header   X-Forwarded-Host $server_name; # CORS Magic add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow_Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';        }    }}

orthanc.json

{  "Name": "Orthanc inside Docker",  "StorageDirectory": "/var/lib/orthanc/db",  "IndexDirectory": "/var/lib/orthanc/db",  "StorageCompression": false,  "MaximumStorageSize": 0,  "MaximumPatientCount": 0,  "Luascripts": [],  "Plugins": ["/usr/share/orthanc/plugins", "/usr/local/share/orthanc/plugins"],  "ConcurrentJobs": 2,  "HttpServerEnabled": true,  "HttpPort": 8042,  "HttpDescribeErrors": true,  "HttpCompressionEnabled": true,  "DicomServerEnabled": true,  "DicomAet": "ORTHANC",  "DicomCheckCalledAet": false,  "DicomPort": 4242,  "DefaultEncoding": "Latin1",  "DeflatedTransferSyntaxAccepted": true,  "JpegTransferSyntaxAccepted": true,  "Jpeg2000TransferSyntaxAccepted": true,  "JpegLosslessTransferSyntaxAccepted": true,  "JpipTransferSyntaxAccepted": true,  "Mpeg2TransferSyntaxAccepted": true,  "RleTransferSyntaxAccepted": true,  "UnknownSopClassAccepted": false,  "DicomScpTimeout": 30,  "RemoteAccessAllowed": true,  "SslEnabled": false,  "SslCertificate": "certificate.pem",  "AuthenticationEnabled": false,  "RegisteredUsers": {    "test": "test"  },  "DicomModalities": {},  "DicomModalitiesInDatabase": false,  "DicomAlwaysAllowEcho": true,  "DicomAlwaysAllowStore": true,  "DicomCheckModalityHost": false,  "DicomScuTimeout": 10,  "OrthancPeers": {},  "OrthancPeersInDatabase": false,  "HttpProxy": "",  "HttpVerbose": true,  "HttpTimeout": 10,  "HttpsVerifyPeers": true,  "HttpsCACertificates": "",  "Usermetadata": {},  "UserContentType": {},  "StableAge": 60,  "StrictAetComparison": false,  "StoreMD5ForAttachments": true,  "LimitFindResults": 0,  "LimitFindInstances": 0,  "LimitJobs": 10,  "LogExportedResources": false,  "KeepAlive": true,  "TcpNoDelay": true,  "HttpThreadsCount": 50,  "StoreDicom": true,  "DicomAssociationCloseDelay": 5,  "QueryRetrieveSize": 10,  "CaseSensitivePN": false,  "LoadPrivateDictionary": true,  "Dictionary": {},  "SynchronousCMove": true,  "JobsHistorySize": 10,  "SaveJobs": true,  "OverwriteInstances": false,  "MediaArchiveSize": 1,  "StorageAccessOnFind": "Always",  "MetricsEnabled": true,  "DicomWeb": {    "Enable": true,    "Root": "/dicom-web/",    "EnableWado": true,    "WadoRoot": "/wado",    "Host": "127.0.0.1",    "Ssl": false,    "StowMaxInstances": 10,    "StowMaxSize": 10,    "QidoCaseSensitive": false  }}

使用此配置运行:

docker-compose up -d viewer

上传图片:http:// localhost:8899

在查看器中查看图像:http:// localhost:3030



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号