22// it monitors periodically the docker daemon status.
33// It manages containers defined in common.plugins.docker and could monitor other containers
44
5+ import { join } from 'path' ;
56import type { ContainerConfig , ContainerStats , ContainerStatus , DockerContainerInspect } from '../types' ;
67import DockerManager from './DockerManager' ;
78
@@ -255,6 +256,7 @@ export default class DockerManagerOfOwnContainers extends DockerManager {
255256 readonly #ownContainers: ContainerConfig [ ] = [ ] ;
256257 #monitoringInterval: NodeJS . Timeout | null = null ;
257258 #ownContainersStats: { [ name : string ] : ContainerStatus } = { } ;
259+ #adapterDir: string ;
258260
259261 constructor (
260262 options : {
@@ -266,12 +268,14 @@ export default class DockerManagerOfOwnContainers extends DockerManager {
266268 cert ?: string ;
267269 key ?: string ;
268270 } ;
271+ adapterDir ?: string ;
269272 logger : ioBroker . Logger ;
270273 namespace : `${string } .${number } `;
271274 } ,
272275 containers ?: ContainerConfig [ ] ,
273276 ) {
274277 super ( options ) ;
278+ this . #adapterDir = options . adapterDir || '' ;
275279 this . #ownContainers = containers || [ ] ;
276280 this . #waitAllChecked = new Promise < void > ( resolve => ( this . #waitAllCheckedResolve = resolve ) ) ;
277281 }
@@ -556,6 +560,14 @@ export default class DockerManagerOfOwnContainers extends DockerManager {
556560 }
557561 }
558562
563+ if (
564+ mount . iobAutoCopyFrom &&
565+ ( ! mount . iobAutoCopyFrom . startsWith ( '/' ) ||
566+ mount . iobAutoCopyFrom . match ( / ^ [ a - z A - Z ] : / ) )
567+ ) {
568+ mount . iobAutoCopyFrom = join ( this . #adapterDir, mount . iobAutoCopyFrom ) ;
569+ }
570+
559571 const volume = volumes . find ( v => v . name === mount . source ) ;
560572 if ( ! volume ) {
561573 this . log . info ( `Creating docker volume ${ mount . source } ` ) ;
0 commit comments