diff --git a/README.md b/README.md index 4d7b08bc..a8ca22c2 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,9 @@ services: environment: # Tell Dockge where is your stacks directory - DOCKGE_STACKS_DIR=/opt/stacks + # Both PUID and PGID must be set for it to do anything + - PUID=1000 # Set the stack file/dir ownership to this user + - PGID=1000 # Set the stack file/dir ownership to this group ``` ## How to Update diff --git a/backend/stack.ts b/backend/stack.ts index 922dad89..26b49ca2 100644 --- a/backend/stack.ts +++ b/backend/stack.ts @@ -147,6 +147,12 @@ export class Stack { // Write or overwrite the compose.yaml fs.writeFileSync(path.join(dir, this._composeFileName), this.composeYAML); + if (process.env.PUID && process.env.PGID) { + const uid = Number(process.env.PUID); + const gid = Number(process.env.PGID); + fs.lchownSync(dir, uid, gid); + fs.chownSync(path.join(dir, this._composeFileName), uid, gid); + } } async deploy(socket? : DockgeSocket) : Promise {