cli icon indicating copy to clipboard operation
cli copied to clipboard

devcontainer features and mount

Open Lupennat opened this issue 1 year ago • 0 comments

Devcontainer uses both Docker and docker-compose to generate containers. The features should theoretically ignore in which mode the reference container is created, but this does not seem to be respected by using ‘mounts’. A feature that needs to mount with type=bind in readonly mode is not able to cover both docker and docker-compose commands.

 "mounts": [
{
            "source": "/local-path",
            "target": "/remote-path:ro", // syntax for docker-compose
            "type": "bind",
},
{
            "source": "/local-path",
            "target": "/remote-path,readonly", //  syntax for docker
            "type": "bind",
},
]

By using both strings or Mount Object, it is not possible to write a single functional mount. The example above (it's the only way I found to make mount works) generates a wrong mount path /remote-path,readonly for docker-compose and /remote-path:ro for docker. The problem probably can be solved through Mount interface

export interface Mount {
	type: 'bind' | 'volume';
	source?: string;
	target: string;
	external?: boolean;
        readonly?: boolean
}

and use the property readonly to generate the right syntax for both docker-compose.yml and docker --mount

Lupennat avatar Aug 28 '24 17:08 Lupennat