Files
plex-playlist/Dockerfile.frontend
copilotcoder e124045f1a
Some checks failed
CICD / Build and Publish CICD Base Image (push) Successful in 22s
CICD / CICD Tests Complete (push) Has been cancelled
CICD / Build Backend Base Image (push) Has been cancelled
CICD / Build Frontend Base Image (push) Has been cancelled
CICD / Build Integration Tester Image (push) Has been cancelled
CICD / Build E2E Tester Image (push) Has been cancelled
CICD / Build and Publish Runtime Images (Legacy Disabled) (push) Has been cancelled
CICD / Build Backend Main Image (push) Has been cancelled
CICD / Build Frontend Main Image (push) Has been cancelled
CICD / Build CICD Image Failure Postmortem (push) Has been cancelled
CICD / Backend Tests (push) Has been cancelled
CICD / Pre-commit Checks (push) Has been cancelled
CICD / Frontend Tests (push) Has been cancelled
CICD / Backend Doctests (push) Has been cancelled
CICD / Production Images Complete (push) Has been cancelled
CICD / Runtime Images Failure Postmortem (push) Has been cancelled
CICD / Source Lanes Failure Postmortem (push) Has been cancelled
CICD / Runtime Black-Box Integration Tests (push) Has been cancelled
CICD / Integration Tests Failure Postmortem (push) Has been cancelled
CICD / End-to-End Tests (push) Has been cancelled
CICD / E2E Tests Failure Postmortem (push) Has been cancelled
CICD / Build and Push CICD Image (push) Has been cancelled
Retry Corepack/Yarn bootstrap in frontend image build
2026-07-08 16:22:26 -04:00

39 lines
791 B
Docker

# Frontend Dockerfile for Vue/Vite TypeScript project
FROM node:24-alpine AS deps
WORKDIR /app
COPY frontend/package.json frontend/yarn.lock frontend/.yarnrc.yml ./
RUN set -eux; \
retry() { \
attempts="$1"; shift; \
n=1; \
while [ "$n" -le "$attempts" ]; do \
if "$@"; then \
return 0; \
fi; \
if [ "$n" -lt "$attempts" ]; then \
sleep "$((3 * n))"; \
fi; \
n=$((n + 1)); \
done; \
return 1; \
}; \
corepack enable; \
retry 5 corepack prepare yarn@4.10.3 --activate; \
retry 5 yarn install --immutable
FROM deps AS build
COPY frontend/ .
RUN yarn build
FROM nginx:alpine AS production
COPY --from=build /app/dist /usr/share/nginx/html
COPY frontend/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]