2024-05-03 12:56:44 -07:00
|
|
|
FROM node:20
|
|
|
|
|
2024-05-12 22:06:11 -07:00
|
|
|
# Security: Drop all capabilities
|
|
|
|
USER root
|
2024-05-25 01:16:25 -07:00
|
|
|
RUN apt-get update && apt-get install -y libcap2-bin
|
|
|
|
RUN setcap cap_net_bind_service=+ep /usr/local/bin/node
|
2024-05-12 22:06:11 -07:00
|
|
|
|
2024-05-03 12:56:44 -07:00
|
|
|
WORKDIR /code
|
|
|
|
|
|
|
|
COPY package*.json ./
|
|
|
|
|
|
|
|
RUN npm install
|
|
|
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
RUN npm run build
|
|
|
|
|
2024-05-25 01:16:25 -07:00
|
|
|
# Security: Create non-root user and assign ownership
|
2024-05-25 20:13:31 -07:00
|
|
|
RUN useradd -m appuser
|
|
|
|
RUN mkdir projects && chown -R appuser:appuser projects
|
|
|
|
USER appuser
|
2024-05-24 01:28:50 -07:00
|
|
|
|
2024-05-25 20:13:31 -07:00
|
|
|
# todo user namespace mapping
|
2024-05-25 01:16:25 -07:00
|
|
|
|
2024-05-26 17:28:52 -07:00
|
|
|
EXPOSE 5173
|
2024-05-25 20:13:31 -07:00
|
|
|
EXPOSE 4000
|
2024-05-03 12:56:44 -07:00
|
|
|
|
2024-05-25 01:16:25 -07:00
|
|
|
CMD [ "node", "dist/index.js" ]
|