diff --git a/.dockerignore b/.dockerignore index 8f8678b..d6aca9a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,10 +1,2 @@ -.git -.github -.venv -.vscode -build -Dockerfile -tests - -client -!client/dist +client/dist +client/node_modules \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 967ffb2..a722bbf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,11 @@ -FROM python:3.11-alpine +FROM node:16-alpine as client-builder + +COPY ./client /client +WORKDIR /client +RUN npm install +RUN npm run build + +FROM python:3.11-alpine as runner # Add local user so we don't run as root RUN adduser -D app @@ -7,10 +14,17 @@ USER app ENV PATH="/home/app/.local/bin:${PATH}" # Copy and install app -COPY --chown=app:app ./ /home/app/spoolman/ +COPY --chown=app:app spoolman /home/app/spoolman/spoolman +COPY --chown=app:app pyproject.toml /home/app/spoolman/ +COPY --chown=app:app requirements.txt /home/app/spoolman/ +COPY --chown=app:app README.md /home/app/spoolman/ + WORKDIR /home/app/spoolman RUN pip install --user . +# Copy built client +COPY --chown=app:app --from=client-builder /client/dist /home/app/spoolman/client/dist + # Run command EXPOSE 8000 CMD ["uvicorn", "spoolman.main:app", "--host", "0.0.0.0", "--port", "8000"]