Staging env file and prefix title with [DEV] while in staging

This commit is contained in:
2025-08-26 19:50:45 +02:00
parent d160e6d1ca
commit 975aafa8b9
5 changed files with 16 additions and 3 deletions

1
.env.staging Normal file
View File

@ -0,0 +1 @@
URL="https://dev.martials.no"

View File

@ -1,6 +1,8 @@
FROM node:lts-alpine AS base FROM node:lts-alpine AS base
WORKDIR /app WORKDIR /app
ARG mode
# By copying only the package.json and package-lock.json here, we ensure that the following `-deps` steps are independent of the source code. # By copying only the package.json and package-lock.json here, we ensure that the following `-deps` steps are independent of the source code.
# Therefore, the `-deps` steps will be skipped if only the source code changes. # Therefore, the `-deps` steps will be skipped if only the source code changes.
COPY package.json pnpm-lock.yaml ./ COPY package.json pnpm-lock.yaml ./
@ -14,7 +16,11 @@ RUN npm exec -- pnpm install
FROM build-deps AS build FROM build-deps AS build
COPY . . COPY . .
RUN npm exec -- pnpm run build RUN if [ "$mode" = "staging" ]; then \
npm exec -- pnpm run staging; \
else \
npm exec -- pnpm run build; \
fi
FROM base AS runtime FROM base AS runtime
COPY --from=prod-deps /app/node_modules ./node_modules COPY --from=prod-deps /app/node_modules ./node_modules
@ -23,4 +29,4 @@ COPY --from=build /app/dist ./dist
ENV HOST=0.0.0.0 ENV HOST=0.0.0.0
ENV PORT=4321 ENV PORT=4321
EXPOSE 4321 EXPOSE 4321
ENTRYPOINT node ./dist/server/entry.mjs ENTRYPOINT exec node ./dist/server/entry.mjs

View File

@ -16,5 +16,7 @@ services:
build: build:
context: . context: .
dockerfile: Dockerfile dockerfile: Dockerfile
args:
mode: staging
ports: ports:
- "4322:4321" - "4322:4321"

View File

@ -6,6 +6,7 @@
"dev": "astro dev", "dev": "astro dev",
"start": "astro dev", "start": "astro dev",
"build": "paraglide-js compile --project ./project.inlang --outdir ./src/paraglide && astro check && astro build", "build": "paraglide-js compile --project ./project.inlang --outdir ./src/paraglide && astro check && astro build",
"staging": "paraglide-js compile --project ./project.inlang --outdir ./src/paraglide && astro check && astro build --mode staging",
"preview": "astro preview", "preview": "astro preview",
"astro": "astro", "astro": "astro",
"type-check": "astro check", "type-check": "astro check",

View File

@ -11,6 +11,9 @@ interface Props {
class?: string class?: string
} }
const { title, description, keywords, class: clazz } = Astro.props const { title, description, keywords, class: clazz } = Astro.props
const prefix = import.meta.env.MODE === "staging" ? "[DEV] " : ""
const mainClass = const mainClass =
"grow max-w-[1000px] m-auto sm:min-w-[500px] not-sm:w-full px-5" "grow max-w-[1000px] m-auto sm:min-w-[500px] not-sm:w-full px-5"
--- ---
@ -26,7 +29,7 @@ const mainClass =
{keywords && <meta name="keywords" content={keywords.join(", ")} />} {keywords && <meta name="keywords" content={keywords.join(", ")} />}
<link rel="sitemap" href="/sitemap-index.xml" /> <link rel="sitemap" href="/sitemap-index.xml" />
<link rel="icon" type="image/jpg" href="/favicon.jpg" /> <link rel="icon" type="image/jpg" href="/favicon.jpg" />
<title>{title} | Martin Berg Alstad</title> <title>{prefix}{title} | Martin Berg Alstad</title>
</head> </head>
<body class="flex flex-col min-h-screen bg-cat-base text-cat-text"> <body class="flex flex-col min-h-screen bg-cat-base text-cat-text">