All checks were successful
build-and-push / build (push) Successful in 36s
- AppShell·사이드바(역할별 네비)·탑바·UI킷, react-query·axios·recharts·dnd-kit - SP 디자인 토큰 재사용(navy/canvas/Noto Sans KR) + 회계용 고밀도 확장 - 페이지: 대시보드, 근무(타임시트·휴가/초과 신청), 프로젝트 목록/상세 (간트·칸반·캘린더·작업자portion·업체담당자·계약/분할입금 admin), 인센티브(유저 대시보드), 인센티브 관리 콘솔(단계 stepper·시뮬레이터·오버라이드), 회계(현금-인센티브 갭·원장·세금), 구성원·설정·승인·프로필 - 권한 가드: 관리자 전용 라우트, ?as=user 로 구성원 시점 미리보기 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
19 lines
562 B
Docker
19 lines
562 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
# --- Stage 1: build ---
|
|
FROM node:20-alpine AS build
|
|
WORKDIR /app
|
|
COPY package.json package-lock.json* ./
|
|
RUN npm ci || npm install
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
# --- Stage 2: serve ---
|
|
FROM nginx:alpine
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
# The image entrypoint runs envsubst over /etc/nginx/templates/*.template at
|
|
# startup. Only SPIN_BACKEND_URL is substituted so nginx's own $vars survive.
|
|
ENV NGINX_ENVSUBST_FILTER=SPIN_BACKEND_URL
|
|
COPY nginx.conf.template /etc/nginx/templates/default.conf.template
|
|
EXPOSE 8080
|