A user mode nfs server implemented in a container. Supports serving NFS (v3, 4.0, 4.1, 4.1 pNFS, 4.2) and 9P. This container is also configured with the nfs-ganesha Ceph FSAL backend.
Currently generates a config for just serving a local path over nfs. However supplying GANESHA_CONFIGFILE would allow ganesha to be pointed to a bind mounted config file for other FASLs/more advanced configuration.
- ganesha: 2.8
GANESHA_LOGFILE: log file location, defaults to/dev/stdoutGANESHA_CONFIGFILE: location of ganesha.conf, defaults to/etc/ganesha/ganesha.confGANESHA_OPTIONS: command line options to pass to ganesha, defaults to-N NIV_EVENTGANESHA_EPOCH: ganesha epoch valueGANESHA_EXPORT_ID: ganesha unique export id, defaults to77GANESHA_EXPORT: export location, defaults to/exportGANESHA_PSEUDO_PATH: NFSv4 pseudo-path of the export, defaults to/GANESHA_NFS_PROTOCOLS: nfs protocols to support, defaults to3,4GANESHA_TRANSPORTS: nfs transports to support, defaults toUDP,TCPGANESHA_BOOTSTRAP_CONFIG: write fresh config file on start, defaults toyesGANESHA_ACCESS: export access acl list, defaults to*GANESHA_ROOT_ACCESS: export root access acl list, defaults to*STARTUP_SCRIPT: location of a shell script to execute on start
EXPORT
{
# Export Id (mandatory, each EXPORT must have a unique Export_Id)
Export_Id = ${GANESHA_EXPORT_ID};
# Exported path (mandatory)
Path = ${GANESHA_EXPORT};
# Pseudo Path (for NFS v4)
Pseudo = ${GANESHA_PSEUDO_PATH};
# Access control options
Access_Type = RW;
Squash = No_Root_Squash;
# NFS protocol options
SecType = "sys";
Transports = ${GANESHA_TRANSPORTS};
Protocols = ${GANESHA_NFS_PROTOCOLS};
# Exporting FSAL
FSAL {
Name = VFS;
}
}
docker run -d \
--name nfs \
-v /local/export/path:/export \
ananace/nfs-ganesha-ceph \