diff --git a/backend/Dockerfile b/backend/Dockerfile index 083585f..bb683ba 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,18 +1,27 @@ FROM node:18-alpine -# Define o diretório de trabalho como a raiz da app +# 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 -# Copia os ficheiros de dependências da raiz para o container -COPY package*.json ./ +# Ajusta as permissões da pasta para o novo utilizador +RUN chown -R appuser:appgroup /usr/src/app -# Instala as dependências (agora que o package.json está aqui) +# Copia os ficheiros e instala dependências +COPY package*.json ./ RUN npm install --omit=dev -# Copia o resto do código fonte (backend e frontend) -# Em vez de COPY . . (que copia tudo), copia apenas o que é necessário: +# Copia o código fonte COPY backend/ ./backend/ COPY frontend/ ./frontend/ -# Expõe a porta e define o comando de arranque + +# 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"] \ No newline at end of file