diff --git a/.gitea/workflows/build-deploy.yml b/.gitea/workflows/build-deploy.yml index 39cf9f1..7c5f743 100644 --- a/.gitea/workflows/build-deploy.yml +++ b/.gitea/workflows/build-deploy.yml @@ -30,6 +30,12 @@ jobs: file: ./Dockerfile platforms: linux/amd64 push: true + build-args: | + NEXT_PUBLIC_API_BASE_URL=${{ vars.NEXT_PUBLIC_API_BASE_URL }} + NEXT_PUBLIC_WREN_API_TOKEN=${{ secrets.NEXT_PUBLIC_WREN_API_TOKEN }} + NEXT_PUBLIC_FORMSPREE_CONTACT_ID=${{ secrets.NEXT_PUBLIC_FORMSPREE_CONTACT_ID }} + NEXT_PUBLIC_FORMSPREE_OFFSET_ID=${{ secrets.NEXT_PUBLIC_FORMSPREE_OFFSET_ID }} + NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=${{ secrets.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY }} tags: | ${{ vars.REGISTRY_HOST }}/${{ vars.REGISTRY_USERNAME }}/${{ vars.IMAGE_NAME }}:frontend-latest ${{ vars.REGISTRY_HOST }}/${{ vars.REGISTRY_USERNAME }}/${{ vars.IMAGE_NAME }}:frontend-main-${{ github.sha }} diff --git a/Dockerfile b/Dockerfile index 7fb0bd6..5c24034 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,8 +10,23 @@ RUN npm ci # Copy the rest of the app COPY . . +# Accept build arguments for NEXT_PUBLIC_ variables +# These MUST be provided at build time +ARG NEXT_PUBLIC_API_BASE_URL +ARG NEXT_PUBLIC_WREN_API_TOKEN +ARG NEXT_PUBLIC_FORMSPREE_CONTACT_ID +ARG NEXT_PUBLIC_FORMSPREE_OFFSET_ID +ARG NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY + +# Set as environment variables so Next.js can bake them into the build +ENV NEXT_PUBLIC_API_BASE_URL=$NEXT_PUBLIC_API_BASE_URL +ENV NEXT_PUBLIC_WREN_API_TOKEN=$NEXT_PUBLIC_WREN_API_TOKEN +ENV NEXT_PUBLIC_FORMSPREE_CONTACT_ID=$NEXT_PUBLIC_FORMSPREE_CONTACT_ID +ENV NEXT_PUBLIC_FORMSPREE_OFFSET_ID=$NEXT_PUBLIC_FORMSPREE_OFFSET_ID +ENV NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=$NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY + # Build Next.js app (standalone mode) -# Environment variables with NEXT_PUBLIC_ prefix are baked in at build time +# NEXT_PUBLIC_ variables are now baked in at build time RUN npm run build # Production Stage - Next.js standalone server