diff --git a/internal/room/manager.go b/internal/room/manager.go index 5486c03..696ca33 100644 --- a/internal/room/manager.go +++ b/internal/room/manager.go @@ -28,6 +28,8 @@ import ( const ( frontendPort = 8080 roomStoragePath = "./rooms" + roomStorageUid = 1000 + roomStorageGid = 1000 ) func New(config *config.Room) *RoomManagerCtx { @@ -207,6 +209,10 @@ func (manager *RoomManagerCtx) Create(settings types.RoomSettings) (string, erro return "", err } + if err := utils.ChownR(internalPath, roomStorageUid, roomStorageGid); err != nil { + return "", err + } + mounts = append(mounts, dockerMount.Mount{ Type: dockerMount.TypeBind, diff --git a/internal/utils/fs.go b/internal/utils/fs.go new file mode 100644 index 0000000..cc24a2c --- /dev/null +++ b/internal/utils/fs.go @@ -0,0 +1,15 @@ +package utils + +import ( + "os" + "path/filepath" +) + +func ChownR(path string, uid, gid int) error { + return filepath.Walk(path, func(name string, info os.FileInfo, err error) error { + if err == nil { + err = os.Chown(name, uid, gid) + } + return err + }) +}