Files
sternboard/Dockerfile
T
Millaguie f11ea58c2c
CI/CD Pipeline / test (push) Successful in 26s
CI/CD Pipeline / build-and-push (push) Successful in 44s
Sternboard: free retro board, no signup (initial)
Servidor Fastify + Socket.IO + Drizzle/Postgres; front Vite+React (EN/ES, tema claro/oscuro).
Tableros por columnas con plantillas, notas privadas/públicas, agrupación, votos
configurables (multivoto), timer compartido con alarma, fases, action items,
export Markdown/JSON e import, autodestrucción, gestión de columnas.
Imagen única (front servido por el servidor) y CI que la construye y publica.
2026-06-16 10:27:33 +02:00

28 lines
886 B
Docker

# syntax=docker/dockerfile:1
# Imagen única: construye el front (Vite) y lo sirve desde el servidor (Fastify + Socket.IO).
# ---- build del front ----
FROM node:22-alpine AS web
WORKDIR /web
COPY web/package.json web/package-lock.json* ./
RUN npm install
COPY web/ ./
RUN npm run build # -> /web/dist
# ---- producción ----
FROM node:22-alpine AS production
WORKDIR /app
# deps del servidor (incluye tsx y drizzle-kit; NODE_ENV se fija DESPUÉS para no
# saltarse las devDependencies durante la instalación)
COPY server/package.json server/package-lock.json* ./
RUN npm install
# código del servidor y front compilado
COPY server/ ./
COPY --from=web /web/dist ./public
ENV NODE_ENV=production
ENV WEB_DIST=/app/public
ENV PORT=3001
EXPOSE 3001
# aplica el esquema (drizzle-kit push) y arranca el servidor
CMD ["sh", "-c", "npx drizzle-kit push --force && npx tsx src/index.ts"]