From 8c658b7eda6ccdd07c2de8e4537d8cb9b4c9bf32 Mon Sep 17 00:00:00 2001 From: Paul Mineev Date: Wed, 13 Jul 2022 12:30:41 -0700 Subject: [PATCH] fix frontend test/build in docker --- Dockerfile | 53 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index b70ff476..3be78178 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,18 +39,18 @@ ARG CI ARG SKIP_FRONTEND_BUILD ENV HUSKY_SKIP_INSTALL=true -RUN if [ -z "$SKIP_FRONTEND_BUILD" ] ; then \ - apk add --no-cache --update git \ - ; fi -ADD frontend/package.json /srv/frontend/package.json -ADD frontend/pnpm-lock.yaml /srv/frontend/pnpm-lock.yaml WORKDIR /srv/frontend -RUN if [ -z "$SKIP_FRONTEND_BUILD" ] ; then \ - npm i -g pnpm && \ - CI=true pnpm i --loglevel warn \ - else \ - echo "skip frontend build" \ - ; fi +COPY frontend/package.json frontend/pnpm-lock.yaml /srv/frontend/ +RUN \ + if [[ -z "$SKIP_FRONTEND_BUILD" || -z "$SKIP_FRONTEND_TEST" ]]; then \ + apk add --no-cache --update git && \ + npm i -g pnpm; \ + fi + + RUN --mount=type=cache,id=pnpm,target=/root/.pnpm-store/v3 \ + if [[ -z "$SKIP_FRONTEND_BUILD" || -z "$SKIP_FRONTEND_TEST" ]]; then \ + pnpm i; \ + fi FROM --platform=$BUILDPLATFORM node:16.15.1-alpine as build-frontend @@ -60,17 +60,28 @@ ARG SKIP_FRONTEND_BUILD ARG NODE_ENV=production COPY --from=build-frontend-deps /srv/frontend/node_modules /srv/frontend/node_modules -ADD frontend /srv/frontend +COPY ./frontend /srv/frontend WORKDIR /srv/frontend -RUN mkdir public -RUN if [ -z "$SKIP_FRONTEND_BUILD" ] ; then \ - if [ -z "$SKIP_FRONTEND_TEST" ] ; then \ - npm run lint test check; \ - else \ - echo "skip frontend tests and lint" ; npm run build \ - ; fi \ - ; fi -RUN rm -rf ./node_modules +RUN \ + if [[ -z "$SKIP_FRONTEND_BUILD" || -z "$SKIP_FRONTEND_TEST" ]]; then \ + apk add --no-cache --update git && \ + npm i -g pnpm; \ + fi + +RUN \ + if [ -z "$SKIP_FRONTEND_TEST" ]; then \ + echo 'Skip frontend test'; \ + else \ + pnpm lint test check; \ + fi + +RUN \ + if [ -z "$SKIP_FRONTEND_BUILD" ]; then \ + mkdir public; \ + echo 'Skip frontend build'; \ + else \ + pnpm build; \ + fi FROM umputun/baseimage:app-v1.9.1