mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 02:35:14 +00:00
48 lines
No EOL
1.4 KiB
Docker
48 lines
No EOL
1.4 KiB
Docker
# Define base image build arguments (must be before any FROM)
|
|
ARG REPO_OWNER=dispatcharr
|
|
ARG REPO_NAME=dispatcharr
|
|
ARG BASE_TAG=base
|
|
|
|
# --- Build frontend ---
|
|
|
|
FROM node:24 AS frontend-builder
|
|
|
|
WORKDIR /app/frontend
|
|
COPY ./frontend /app/frontend
|
|
# remove any node_modules that may have been copied from the host (x86)
|
|
RUN rm -rf node_modules || true; \
|
|
npm install --no-audit --progress=false;
|
|
RUN npm run build; \
|
|
rm -rf node_modules .cache
|
|
|
|
# --- Redeclare build arguments for the next stage ---
|
|
ARG REPO_OWNER
|
|
ARG REPO_NAME
|
|
ARG BASE_TAG
|
|
|
|
# --- Final image based on the dynamic base ---
|
|
FROM ghcr.io/${REPO_OWNER}/${REPO_NAME}:${BASE_TAG} AS final
|
|
ENV VIRTUAL_ENV=/dispatcharrpy
|
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
WORKDIR /app
|
|
|
|
# Copy application code
|
|
COPY . /app
|
|
# Copy nginx configuration
|
|
COPY ./docker/nginx.conf /etc/nginx/sites-enabled/default
|
|
# Clean out existing frontend folder
|
|
RUN rm -rf /app/frontend
|
|
# Copy built frontend assets
|
|
COPY --from=frontend-builder /app/frontend/dist /app/frontend/dist
|
|
|
|
# Add timestamp argument
|
|
ARG TIMESTAMP
|
|
|
|
# Update version.py with build timestamp if provided
|
|
RUN if [ -n "$TIMESTAMP" ]; then \
|
|
echo "Updating timestamp to ${TIMESTAMP} in version.py" && \
|
|
sed -i "s|__timestamp__ = None.*|__timestamp__ = '${TIMESTAMP}' # Set during CI/CD build process|" /app/version.py && \
|
|
cat /app/version.py; \
|
|
fi
|
|
|
|
ENTRYPOINT ["/app/docker/entrypoint.sh"] |