33 lines
842 B
Docker
33 lines
842 B
Docker
#FROM node:22-alpine
|
|
FROM node:18.14.0-alpine
|
|
|
|
RUN apk update && apk upgrade --no-cache
|
|
|
|
# 2. Atualiza a versão global do gestor NPM (Corrige tar, glob, minimatch)
|
|
RUN npm install -g npm@latest
|
|
|
|
# Cria um grupo e um utilizador sem privilégios
|
|
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
|
|
|
|
# Define o diretório de trabalho
|
|
WORKDIR /usr/src/app
|
|
|
|
# Ajusta as permissões da pasta para o novo utilizador
|
|
RUN chown -R appuser:appgroup /usr/src/app
|
|
|
|
# Copia os ficheiros e instala dependências
|
|
COPY package*.json ./
|
|
RUN npm install --omit=dev
|
|
|
|
# Copia o código fonte
|
|
COPY backend/ ./backend/
|
|
COPY frontend/ ./frontend/
|
|
|
|
# Altera a propriedade dos ficheiros copiados para o utilizador
|
|
RUN chown -R appuser:appgroup /usr/src/app
|
|
|
|
# Muda para o utilizador sem privilégios
|
|
USER appuser
|
|
|
|
EXPOSE 3000
|
|
CMD ["node", "backend/server.js"] |