43 lines
1.0 KiB
Docker
43 lines
1.0 KiB
Docker
FROM node:22-alpine AS build-frontend
|
|
|
|
WORKDIR /src
|
|
|
|
COPY --chown=node:node *.json .
|
|
COPY --chown=node:node *.js .
|
|
COPY --chown=node:node src/frontend ./src/frontend
|
|
|
|
USER root
|
|
RUN chown -R node:node /src
|
|
USER node
|
|
RUN npm install --omit=dev && \
|
|
npm run build-frontend
|
|
|
|
FROM python:3.13-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
RUN apk add --no-cache \
|
|
gcc \
|
|
musl-dev \
|
|
python3-dev \
|
|
libffi-dev \
|
|
openssl-dev
|
|
|
|
RUN mkdir -p /config/.reticulum /config/.meshchat && \
|
|
chown -R 1000:1000 /config
|
|
|
|
COPY --chown=1000:1000 ./requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
RUN mkdir -p /app/public
|
|
COPY --from=build-frontend --chown=1000:1000 /src/public/ /app/public/
|
|
|
|
COPY --chown=1000:1000 *.py .
|
|
COPY --chown=1000:1000 src/__init__.py ./src/__init__.py
|
|
COPY --chown=1000:1000 src/backend ./src/backend
|
|
COPY --chown=1000:1000 *.json .
|
|
|
|
USER 1000
|
|
ENTRYPOINT ["python"]
|
|
CMD ["meshchat.py", "--host=0.0.0.0", "--reticulum-config-dir=/config/.reticulum", "--storage-dir=/config/.meshchat", "--headless"]
|