mirror of
https://github.com/StarFleetCPTN/GoMFT.git
synced 2026-11-09 05:17:58 +01:00
feat: Implement frontend asset build process and update Docker configuration
- Added a new build script using esbuild to bundle JavaScript and CSS assets, including Tailwind CSS and Font Awesome. - Updated the Dockerfile to include a multi-stage build process for frontend assets, ensuring efficient image creation. - Enhanced GitHub workflows to automate the installation of Node.js dependencies and build frontend assets during CI/CD. - Introduced a .gitignore entry for the dist directory to prevent unnecessary files from being tracked. - Improved caching and content type handling for static files served by the application.
This commit is contained in:
1 parent
405b2e605e
commit
fde60b7d68
30 files changed
+2556
-241
No files matched your search
+44
-3
@@ -1,3 +1,32 @@
|
||||
# Build frontend assets
|
||||
FROM node:20-alpine AS frontend-builder
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy all files needed for the build first
|
||||
COPY package.json package-lock.json ./
|
||||
COPY build.js ./
|
||||
COPY static/ ./static/
|
||||
COPY tailwind.config.js ./
|
||||
|
||||
# Debug: Show the contents of build.js
|
||||
RUN echo "Contents of build.js:" && cat build.js
|
||||
|
||||
# Remove the build script from postinstall
|
||||
RUN sed -i 's/"postinstall": "npm run build",//' package.json
|
||||
|
||||
# Install dependencies and build with verbose output
|
||||
RUN npm ci && \
|
||||
echo "Building frontend assets..." && \
|
||||
node build.js && \
|
||||
echo "Build complete. Contents of dist:" && \
|
||||
ls -la static/dist/ && \
|
||||
echo "Sample of app.js:" && \
|
||||
head -n 10 static/dist/app.js && \
|
||||
echo "Sample of app.css:" && \
|
||||
head -n 10 static/dist/app.css
|
||||
|
||||
# Go build stage
|
||||
FROM golang:1.24-alpine AS builder
|
||||
|
||||
WORKDIR /app
|
||||
@@ -17,7 +46,20 @@ RUN go install github.com/a-h/templ/cmd/templ@latest
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# Copy the rest of the source code
|
||||
# Create static directory structure
|
||||
RUN mkdir -p /app/static/dist
|
||||
|
||||
# Copy built frontend assets from frontend-builder BEFORE copying Go source
|
||||
COPY --from=frontend-builder /app/static/dist/ /app/static/dist/
|
||||
|
||||
# Copy the rest of the static files
|
||||
COPY static/ /app/static/
|
||||
|
||||
# Verify static files are in place before Go build
|
||||
RUN echo "Verifying static files before Go build:" && \
|
||||
ls -la /app/static/dist/
|
||||
|
||||
# Now copy the rest of the source code
|
||||
COPY . .
|
||||
|
||||
# Generate template files from .templ files
|
||||
@@ -61,8 +103,7 @@ RUN addgroup -g ${GID} ${USERNAME} && \
|
||||
COPY --from=builder /app/gomft /app/
|
||||
COPY --from=builder /usr/local/bin/rclone /usr/local/bin/rclone
|
||||
|
||||
# Copy static files and configurations
|
||||
COPY static/ /app/static/
|
||||
# Copy components
|
||||
COPY components/ /app/components/
|
||||
|
||||
# Copy entrypoint script
|
||||
|
||||
Reference in new issue
Block a user