Skip to content

Commit 14a5a6d

Browse files
authored
Merge pull request #823 from MarcosJRcwb/fix/nodered-prebuild-errors
fix(nodered): fix FileNotFoundError and PermissionError in preBuild
2 parents db40eaa + ba2ab6d commit 14a5a6d

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

.templates/nodered/build.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)