Source .env explicitly during build

This commit is contained in:
mplorentz
2026-02-27 13:35:11 -05:00
parent 3dde0253e6
commit e885fe073f
3 changed files with 17 additions and 14 deletions
+1 -2
View File
@@ -7,7 +7,6 @@ build
.git .git
.gitignore .gitignore
# Env files (use build args instead; .env.template is copied for defaults) # Env files (keep .env for build; exclude local overrides)
.env
.env.local .env.local
.env.*.local .env.*.local
+13 -12
View File
@@ -1,30 +1,31 @@
# Pass the build hash as an argument: # Stage 1: Build
# docker build --build-arg VITE_BUILD_HASH=$(git rev-parse --short HEAD) -t flotilla . # Uses .env from build context for config (logo, branding, etc.)
# Optional: docker build --build-arg VITE_BUILD_HASH=$(git rev-parse --short HEAD) -t flotilla .
FROM node:20-slim FROM node:20-slim AS builder
# Install pnpm
RUN npm install -g pnpm@latest RUN npm install -g pnpm@latest
# Set working directory
WORKDIR /app WORKDIR /app
# Copy package files
COPY package.json pnpm-lock.yaml ./ COPY package.json pnpm-lock.yaml ./
# Install dependencies
RUN pnpm i RUN pnpm i
# Copy the rest of the application # Copy everything (including .env when present) - build.sh will source it
COPY . . COPY . .
ARG VITE_BUILD_HASH ARG VITE_BUILD_HASH
ENV VITE_BUILD_HASH=${VITE_BUILD_HASH} ENV VITE_BUILD_HASH=${VITE_BUILD_HASH}
# Build the application
ENV NODE_OPTIONS=--max_old_space_size=16384 ENV NODE_OPTIONS=--max_old_space_size=16384
RUN pnpm run build RUN pnpm run build
# Default to serving the build directory # Stage 2: Runtime
CMD ["npx", "serve", "build"] FROM node:20-alpine
WORKDIR /app
# Copy only the built output - no source, no .env, no dev deps
COPY --from=builder /app/build ./build
CMD ["npx", "serve", "build"]
+3
View File
@@ -5,6 +5,9 @@ temp_env=$(declare -p -x)
if [ -f .env.template ]; then if [ -f .env.template ]; then
source .env.template source .env.template
fi fi
if [ -f .env ]; then
source .env
fi
# Avoid overwriting env vars provided directly # Avoid overwriting env vars provided directly
# https://stackoverflow.com/a/69127685/1467342 # https://stackoverflow.com/a/69127685/1467342