@@ -111,11 +111,10 @@ def preBuild():
111111 with open (r'%s/Dockerfile.template' % serviceTemplate , 'r' ) as dockerTemplate :
112112 templateData = dockerTemplate .read ()
113113
114- with open (r'%s' % addonsFile ) as objAddonsFile :
115- addonsSelected = yaml .load (objAddonsFile )
116-
117114 addonsInstallCommands = ""
118115 if os .path .exists (addonsFile ):
116+ with open (r'%s' % addonsFile ) as objAddonsFile :
117+ addonsSelected = yaml .load (objAddonsFile )
119118 installCommand = addonsSelected ["dockerFileInstallCommand" ]
120119 for (index , addonName ) in enumerate (addonsSelected ["addons" ]):
121120 if (addonName == 'node-red-node-sqlite' ): # SQLite requires a special param
@@ -125,8 +124,15 @@ def preBuild():
125124
126125 templateData = templateData .replace (dockerfileTemplateReplace , addonsInstallCommands )
127126
128- with open (r'%s/Dockerfile' % serviceService , 'w' ) as dockerTemplate :
129- dockerTemplate .write (templateData )
127+ dockerfilePath = r'%s/Dockerfile' % serviceService
128+ try :
129+ with open (dockerfilePath , 'w' ) as dockerTemplate :
130+ dockerTemplate .write (templateData )
131+ except PermissionError :
132+ print ("Error: Permission denied writing '{path}'." .format (path = dockerfilePath ))
133+ print ("This can happen if a previous build was run as root." )
134+ print ("Fix with: sudo chown $USER:$USER {path}" .format (path = dockerfilePath ))
135+ return False
130136 print ("Finished NodeRed Build script" )
131137 time .sleep (0.3 )
132138 return True
0 commit comments