This guide will walk you through configuring and mounting an NFS file share to a
Coder workspace. The NFS file share will be separate from the user's persistent
volume (represented as /home/<user>
in the workspace).
Requirements
To mount an NFS file share, you must use a container-based virtual machine (CVM) workspace with a FUSE device attached. You can enable both of these features in the admin panel by navigating to Manage > Admin > Infrastructure > Workspace container runtime.
Please review the CVM infrastructure requirements before enabling CVMs and FUSE devices.
The Coder workspace must have either nfs-utils
or nfs-common
installed.
The server must have either nfs-utils
or nfs-kernel-server
installed.
Ensure that no firewalls are blocking the client connections. By default, the
NFS daemon is configured to run on a static port of 2049
.
Server configuration steps
-
Create an NFS mount on the server for the clients to access:
export NFS_MNT_PATH=/mnt/nfs_share # Create directory to shaare sudo mkdir -p $NFS_MNT_PATH # Assign UID & GIDs access sudo chown -R uid:gid $NFS_MNT_PATH sudo chmod 777 $NFS_MNT_PATH
-
Grant access to the clients by updating the
/etc/exports
file, which controls the directories shared with remote clients. See Red Hat's docs for more information about the configuration options.# Provides read/write access to clients accessing the NFS from any IP address. /mnt/nfs_share *(rw,sync,no_subtree_check)
-
Export the NFS file share directory. You must do this every time you change
/etc/exports
.sudo exportfs -a sudo systemctl restart <nfs-package>
Client (Coder workspace) configuration steps
-
Create a directory where the NFS mount will reside:
sudo mkdir -p /mnt/nfs_clientshare
-
Mount the NFS file share from the server into your workspace:
sudo mount <server-IP>:/mnt/nfs_share /mnt/nfs_clientshare