mirror of
https://github.com/karl0ss/homepage.git
synced 2025-04-29 12:03:41 +01: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"]
|
SHELL ["/bin/ash", "-xeo", "pipefail", "-c"]
|
||||||
RUN npm run telemetry \
|
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
|
&& NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build
|
||||||
|
|
||||||
# Production image, copy all the files and run next
|
# 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
|
# while also supporting the lscr.io /config directory
|
||||||
[ ! -d "/app/config" ] && ln -s /config /app/config
|
[ ! -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.
|
# 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.
|
# 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
|
# 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"));
|
return hash(readFileSync(configYaml, "utf8"));
|
||||||
});
|
});
|
||||||
|
|
||||||
// this ties hash to specific build which should force revaliation between versions
|
// set to date by docker entrypoint, will force revalidation between restarts/recreates
|
||||||
const buildTime = process.env.NEXT_PUBLIC_BUILDTIME?.length ? process.env.NEXT_PUBLIC_BUILDTIME : '';
|
const buildTime = process.env.HOMEPAGE_BUILDTIME?.length ? process.env.HOMEPAGE_BUILDTIME : '';
|
||||||
|
|
||||||
const combinedHash = hash(hashes.join("") + buildTime);
|
const combinedHash = hash(hashes.join("") + buildTime);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { existsSync, copyFile, readFileSync } from "fs";
|
import { existsSync, readFileSync, copyFileSync } from "fs";
|
||||||
|
|
||||||
import cache from "memory-cache";
|
import cache from "memory-cache";
|
||||||
import yaml from "js-yaml";
|
import yaml from "js-yaml";
|
||||||
@ -13,13 +13,13 @@ export default function checkAndCopyConfig(config) {
|
|||||||
const configYaml = join(process.cwd(), "config", config);
|
const configYaml = join(process.cwd(), "config", config);
|
||||||
if (!existsSync(configYaml)) {
|
if (!existsSync(configYaml)) {
|
||||||
const configSkeleton = join(process.cwd(), "src", "skeleton", config);
|
const configSkeleton = join(process.cwd(), "src", "skeleton", config);
|
||||||
copyFile(configSkeleton, configYaml, (err) => {
|
try {
|
||||||
if (err) {
|
copyFileSync(configSkeleton, configYaml)
|
||||||
|
console.info("%s was copied to the config folder", config);
|
||||||
|
} catch (err) {
|
||||||
console.error("error copying config", err);
|
console.error("error copying config", err);
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
console.info("%s was copied to the config folder", config);
|
|
||||||
});
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user