Docker configuration for mounting an EFS filesystem locally.

## Background

Our EFS filesystems currently enforce IAM authentication, so they can't be mounted using NFS directly.

The canonical way to mount EFS filesystems is using the EFS mount helper, but this isn't available for Mac.

This project provides a Docker compose configuration for mounting EFS filesystems inside a container using IAM.

## Usage

1. Copy `.env.shadow` to `.env`
2. Obtain the EFS DNS name and mount target IP from the AWS console and update `.env`.
3. Ensure the mount target security group contains a rule which allows traffic from the VPN on port 2049.
4. Assume an IAM role and output credentials to default profile
```
awsume shared -o default
```
5. Run `docker compose run efs`

If successful, you should enter a bash session in `/mnt` inside the container, with the EFS filesystem mounted at `/mnt/efs`.

## Limitations

The EFS filesystem is not accessible on your host machine, even if you mount `/mnt/efs` to a local directory.

In theory this may be possible using bind mount propagation, but this doesn't work with Docker Desktop.
