implementação de mudança de interface
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
d445aa03cf
commit
d4e1b297ae
24 files changed
+1982
-47
No files matched your search
+68
@@ -0,0 +1,68 @@
|
||||
# =========================================================
|
||||
# GenieACS — UniFi Theme Fork
|
||||
# Multi-stage build:
|
||||
# Stage 1 (builder): instala devDeps + compila o projeto
|
||||
# Stage 2 (runtime): imagem mínima só com dist/ + prodDeps
|
||||
# =========================================================
|
||||
|
||||
# ── Stage 1: builder ─────────────────────────────────────
|
||||
FROM node:20-alpine AS builder
|
||||
|
||||
# Dependências de sistema necessárias para o build
|
||||
# (git é exigido pelo build.ts para calcular o metadata de versão)
|
||||
RUN apk add --no-cache git python3 make g++
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
# Copiar manifests primeiro para cache de camadas do npm install
|
||||
COPY package.json npm-shrinkwrap.json ./
|
||||
|
||||
# Instalar TODAS as dependências (incluindo devDependencies)
|
||||
RUN npm ci --fund=false --audit=false
|
||||
|
||||
# Copiar o restante do fonte
|
||||
COPY . .
|
||||
|
||||
# Compilar o projeto (gera dist/)
|
||||
RUN npm run build
|
||||
|
||||
# ── Stage 2: runtime ─────────────────────────────────────
|
||||
FROM node:20-alpine AS runtime
|
||||
|
||||
# Timezone e utilitários mínimos
|
||||
RUN apk add --no-cache tzdata dumb-init
|
||||
|
||||
WORKDIR /opt/genieacs
|
||||
|
||||
# Copiar artefatos compilados
|
||||
COPY --from=builder /build/dist ./
|
||||
|
||||
# Instalar apenas dependências de produção a partir do dist/
|
||||
RUN npm ci --omit=dev --fund=false --audit=false
|
||||
|
||||
# Criar diretórios de configuração e extensões
|
||||
RUN mkdir -p \
|
||||
/opt/genieacs/config/ext \
|
||||
/opt/genieacs/logs \
|
||||
&& addgroup -S genieacs \
|
||||
&& adduser -S -G genieacs genieacs \
|
||||
&& chown -R genieacs:genieacs /opt/genieacs
|
||||
|
||||
USER genieacs
|
||||
|
||||
# Variáveis de ambiente padrão (sobrescreva no compose ou .env)
|
||||
ENV GENIEACS_MONGODB_CONNECTION_URL=mongodb://mongo:27017/genieacs \
|
||||
GENIEACS_EXT_DIR=/opt/genieacs/config/ext \
|
||||
GENIEACS_LOG_FORMAT=json \
|
||||
GENIEACS_ACCESS_LOG_FORMAT=json \
|
||||
GENIEACS_UI_JWT_SECRET=change-me-in-production \
|
||||
GENIEACS_CWMP_WORKER_PROCESSES=1 \
|
||||
GENIEACS_NBI_WORKER_PROCESSES=1 \
|
||||
GENIEACS_FS_WORKER_PROCESSES=1 \
|
||||
GENIEACS_UI_WORKER_PROCESSES=1
|
||||
|
||||
# Expor todas as portas dos serviços
|
||||
EXPOSE 3000 7547 7557 7567
|
||||
|
||||
# dumb-init garante propagação correta de sinais
|
||||
ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||
Reference in new issue
Block a user