build: integrate frontend build into Nginx Dockerfile, remove separate frontend image
CD / deploy (push) Failing after 1m38s
CI / test (push) Successful in 2m7s
CI / docker (push) Canceled after 0s
CI / release (push) Canceled after 0s

This commit is contained in:
zwitschi committed 2026-08-03 19:17:53 +02:00
1 parent 3c2b29ad26
commit 5fc9bc6191
4 files changed
+21 -47

No files matched your search

+2 -23
View File
@@ -110,28 +110,6 @@ jobs:
cache-from: type=gha cache-from: type=gha
cache-to: type=gha,mode=max cache-to: type=gha,mode=max
- name: Extract metadata for Frontend
id: meta-frontend
uses: docker/metadata-action@v5
with:
images: git.allucanget.biz/zwitschi/linearvoid/frontend
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest,enable={{is_default_branch}}
- name: Build and push Frontend image
uses: docker/build-push-action@v5
with:
context: ./frontend
push: true
tags: ${{ steps.meta-frontend.outputs.tags }}
labels: ${{ steps.meta-frontend.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Extract metadata for Nginx - name: Extract metadata for Nginx
id: meta-nginx id: meta-nginx
uses: docker/metadata-action@v5 uses: docker/metadata-action@v5
@@ -147,7 +125,8 @@ jobs:
- name: Build and push Nginx image - name: Build and push Nginx image
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
context: ./infrastructure/nginx context: .
dockerfile: infrastructure/nginx/Dockerfile
push: true push: true
tags: ${{ steps.meta-nginx.outputs.tags }} tags: ${{ steps.meta-nginx.outputs.tags }}
labels: ${{ steps.meta-nginx.outputs.labels }} labels: ${{ steps.meta-nginx.outputs.labels }}
+2 -19
View File
@@ -75,24 +75,6 @@ jobs:
tags: ${{ steps.meta-chat.outputs.tags }} tags: ${{ steps.meta-chat.outputs.tags }}
labels: ${{ steps.meta-chat.outputs.labels }} labels: ${{ steps.meta-chat.outputs.labels }}
- name: Extract metadata for Frontend
id: meta-frontend
uses: docker/metadata-action@v5
with:
images: git.allucanget.biz/zwitschi/linearvoid/frontend
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest
- name: Build and push Frontend image
uses: docker/build-push-action@v5
with:
context: ./frontend
push: true
tags: ${{ steps.meta-frontend.outputs.tags }}
labels: ${{ steps.meta-frontend.outputs.labels }}
- name: Extract metadata for Nginx - name: Extract metadata for Nginx
id: meta-nginx id: meta-nginx
uses: docker/metadata-action@v5 uses: docker/metadata-action@v5
@@ -106,7 +88,8 @@ jobs:
- name: Build and push Nginx image - name: Build and push Nginx image
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
context: ./infrastructure/nginx context: .
dockerfile: infrastructure/nginx/Dockerfile
push: true push: true
tags: ${{ steps.meta-nginx.outputs.tags }} tags: ${{ steps.meta-nginx.outputs.tags }}
labels: ${{ steps.meta-nginx.outputs.labels }} labels: ${{ steps.meta-nginx.outputs.labels }}
+2 -2
View File
@@ -53,8 +53,8 @@ services:
nginx: nginx:
image: ${CI_REGISTRY_URL:-git.allucanget.biz}/${CI_REGISTRY_NAMESPACE:-zwitschi/linearvoid}/nginx:latest image: ${CI_REGISTRY_URL:-git.allucanget.biz}/${CI_REGISTRY_NAMESPACE:-zwitschi/linearvoid}/nginx:latest
build: build:
context: ./infrastructure/nginx context: .
dockerfile: Dockerfile dockerfile: infrastructure/nginx/Dockerfile
container_name: linearvoid-nginx container_name: linearvoid-nginx
restart: unless-stopped restart: unless-stopped
ports: ports:
+15 -3
View File
@@ -1,9 +1,21 @@
# Stage 1: Build frontend
FROM node:20-alpine AS builder
WORKDIR /build
COPY frontend/package*.json ./
RUN npm ci
COPY frontend/ .
RUN npm run build
# Stage 2: Nginx with bundled frontend
FROM nginx:alpine FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf COPY infrastructure/nginx/nginx.conf /etc/nginx/nginx.conf
# Create directories for HLS and frontend # Copy prebuilt frontend from builder stage
RUN mkdir -p /srv/frontend /srv/hls /srv/frontend/admin COPY --from=builder /build/dist/ /srv/frontend/
# Create HLS directory
RUN mkdir -p /srv/hls
EXPOSE 80 EXPOSE 80
CMD ["nginx", "-g", "daemon off;"] CMD ["nginx", "-g", "daemon off;"]