https://github.com/sapk/docker-volume-gvfs
Use GVfs as a backend for docker volume
https://github.com/sapk/docker-volume-gvfs
dav docker docker-volumes ftp gvfs nfs smb sshfs
Last synced: 6 months ago
JSON representation
Use GVfs as a backend for docker volume
- Host: GitHub
- URL: https://github.com/sapk/docker-volume-gvfs
- Owner: sapk
- License: mit
- Created: 2016-11-21T22:04:37.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-04-21T23:34:36.000Z (over 7 years ago)
- Last Synced: 2024-11-05T22:39:42.272Z (11 months ago)
- Topics: dav, docker, docker-volumes, ftp, gvfs, nfs, smb, sshfs
- Language: Go
- Size: 10.8 MB
- Stars: 13
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# docker-volume-gvfs [](https://github.com/sapk/docker-volume-gvfs/blob/master/LICENSE) 
[](https://github.com/sapk/docker-volume-gvfs/releases) [](https://goreportcard.com/report/github.com/sapk/docker-volume-gvfs)
[](https://codecov.io/gh/sapk/docker-volume-gvfs)
master : [](https://travis-ci.org/sapk/docker-volume-gvfs) develop : [](https://travis-ci.org/sapk/docker-volume-gvfs)Use GVfs as a backend for docker volume
Status : **proof of concept (working)**
By using [GVfs](https://wiki.gnome.org/Projects/gvfs) this plugins allow the use of various backend as storage.
Dedends on gvfs and gvfsd-fuse (so dbus indirectly)
Packages : [](https://aur.archlinux.org/packages/docker-volume-gvfs-git/)
Working: SSH/SFTP/DAV/DAVS/FTP
In Progress/Not tested: FTPS/NFS/SMB/CIFS/...
## Build
```
make
```## Start daemon
```
./docker-volume-gvfs daemon
OR in a docker container
docker run -d --device=/dev/fuse:/dev/fuse --cap-add=SYS_ADMIN --cap-add=MKNOD -v /run/docker/plugins:/run/docker/plugins -v /var/lib/docker-volumes/gvfs:/var/lib/docker-volumes/gvfs:shared sapk/docker-volume-gvfs
```For more advance params : ```./docker-volume-gvfs --help OR ./docker-volume-gvfs daemon --help```
```
Run listening volume drive deamon to listen for mount requestUsage:
docker-volume-gvfs daemon [flags]Flags:
-d, --dbus string DBus address to use for gvfs. Can also set default environment DBUS_SESSION_BUS_ADDRESS
-o, --fuse-opts string Fuse options to use for gvfs moint point (default "big_writes,allow_other,auto_cache")Global Flags:
-b, --basedir string Mounted volume base directory (default "/var/lib/docker-volumes/gvfs")
-v, --verbose Turns on verbose logging
```## Create and Mount volume
```
docker volume create --driver gvfs --opt url=ftp://user@url --opt password=pass --name test
docker run -v test:/mnt --rm -ti ubuntu
```
NB : For mounting SSH/SFTP it is usefull to set a [ssh_config](https://linux.die.net/man/5/ssh_config) file for the running user in order to use a ssh key as authentification.## Docker plugin (New)
```
docker plugin install sapk/plugin-gvfs
docker volume create --driver sapk/plugin-gvfs --opt url=ftp://user@url --opt password=pass --name test
docker run -v test:/mnt --rm -ti ubuntu
```## Docker-compose
```
volumes:
some_vol:
driver: sapk/plugin-gvfs
driver_opts:
url: "ftp://user@url"
password: "pass"
```## Known bug:
If when trying to start a container you get this error :`docker: Error response from daemon: chown /var/lib/docker-volumes/gvfs/ftp:host=10.8.0.7,user=sapk: function not implemented.`
Try to start the container with the :nocopy attribute on the volume like that :
```
docker run -v test:/mnt:nocopy --rm -ti ubuntu
```## Inspired from :
- https://github.com/ContainX/docker-volume-netshare/
- https://github.com/vieux/docker-volume-sshfs