Added frontend build to Docker image
continuous-integration/drone the build was successful Details

pull/20/head
Jef Roosens 2021-05-18 21:46:17 +02:00
parent d557d45862
commit f5b443d271
Signed by: Jef Roosens
GPG Key ID: 955C0660072F691F
3 changed files with 38 additions and 1 deletions

View File

@ -1,7 +1,18 @@
# Ignore everything
*
# The stuff necessary to build the image
!Makefile
# Backend stuff
!app/
!setup.cfg
!setup.py
# Frontend stuff
!web/index.html
!web/src/
!web/package.json
!web/yarn.lock
!web/tsconfig.json
!web/public/
!web/vite.config.ts

View File

@ -1,3 +1,4 @@
# Build backend wheels
FROM python:3.9 AS builder
WORKDIR /wheels
@ -7,6 +8,18 @@ COPY ./setup.cfg ./
RUN pip wheel -e .
# Build frontend
FROM node:16 AS fbuilder
# Copy source code
WORKDIR /usr/src/app
COPY ./web ./web
COPY Makefile .
# Build frontend
RUN make fbuild
FROM python:3.9-slim
# Switch to non-root user
@ -30,5 +43,11 @@ WORKDIR /usr/src/app
COPY --chown=runner:runner ./app ./app
COPY --chown=runner:runner setup.cfg setup.py ./
# Copy frontend build
COPY \
--from=fbuilder \
--chown=runner:runner \
/usr/src/app/web/dist ./dist
ENTRYPOINT ["python"]
CMD ["app"]

View File

@ -87,3 +87,10 @@ ftest: node_modules
fbuild: node_modules
@ yarn --cwd '$(WEB_DIR)' build
.PHONY: fbuild
# =====DOCKER=====
## Build image
dbuild:
@ DOCKER_BUILDKIT=1 docker build -t chewingbever/jos:dev .
.PHONY: image