mirror of
				https://github.com/karl0ss/homepage.git
				synced 2025-10-31 06:24:02 +00:00 
			
		
		
		
	Use HOMEPAGE_BUILDTIME to revalidate container restart/recreate
This commit is contained in:
		
							parent
							
								
									a42c50f1cc
								
							
						
					
					
						commit
						6701e3bd77
					
				| @ -29,7 +29,7 @@ COPY . . | ||||
| 
 | ||||
| SHELL ["/bin/ash", "-xeo", "pipefail", "-c"] | ||||
| RUN npm run telemetry \ | ||||
|  && mkdir config && echo '---' > config/settings.yaml \ | ||||
|  && mkdir config \ | ||||
|  && NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build | ||||
| 
 | ||||
| # Production image, copy all the files and run next | ||||
|  | ||||
| @ -10,6 +10,8 @@ export PGID=${PGID:-0} | ||||
| # while also supporting the lscr.io /config directory | ||||
| [ ! -d "/app/config" ] && ln -s /config /app/config | ||||
| 
 | ||||
| export HOMEPAGE_BUILDTIME=$(date +%s) | ||||
| 
 | ||||
| # Set privileges for /app but only if pid 1 user is root and we are dropping privileges. | ||||
| # If container is run as an unprivileged user, it means owner already handled ownership setup on their own. | ||||
| # Running chown in that case (as non-root) will cause error | ||||
|  | ||||
| @ -19,8 +19,8 @@ export default async function handler(req, res) { | ||||
|     return hash(readFileSync(configYaml, "utf8")); | ||||
|   }); | ||||
| 
 | ||||
|   // this ties hash to specific build which should force revaliation between versions
 | ||||
|   const buildTime = process.env.NEXT_PUBLIC_BUILDTIME?.length ? process.env.NEXT_PUBLIC_BUILDTIME : ''; | ||||
|   // set to date by docker entrypoint, will force revalidation between restarts/recreates
 | ||||
|   const buildTime = process.env.HOMEPAGE_BUILDTIME?.length ? process.env.HOMEPAGE_BUILDTIME : ''; | ||||
| 
 | ||||
|   const combinedHash = hash(hashes.join("") + buildTime); | ||||
| 
 | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| /* eslint-disable no-console */ | ||||
| import { join } from "path"; | ||||
| import { existsSync, copyFile, readFileSync } from "fs"; | ||||
| import { existsSync, readFileSync, copyFileSync } from "fs"; | ||||
| 
 | ||||
| import cache from "memory-cache"; | ||||
| import yaml from "js-yaml"; | ||||
| @ -13,13 +13,13 @@ export default function checkAndCopyConfig(config) { | ||||
|   const configYaml = join(process.cwd(), "config", config); | ||||
|   if (!existsSync(configYaml)) { | ||||
|     const configSkeleton = join(process.cwd(), "src", "skeleton", config); | ||||
|     copyFile(configSkeleton, configYaml, (err) => { | ||||
|       if (err) { | ||||
|     try { | ||||
|       copyFileSync(configSkeleton, configYaml) | ||||
|       console.info("%s was copied to the config folder", config); | ||||
|     } catch (err) { | ||||
|         console.error("error copying config", err); | ||||
|         throw err; | ||||
|       } | ||||
|       console.info("%s was copied to the config folder", config); | ||||
|     }); | ||||
|     } | ||||
| 
 | ||||
|     return true; | ||||
|   } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 shamoon
						shamoon