From 5d22d8da4983c75bb8e11b6aaa1b2fac58d77e11 Mon Sep 17 00:00:00 2001 From: itepechi Date: Fri, 6 Sep 2024 07:23:02 +0900 Subject: [PATCH] Modernise build process --- Dockerfile | 18 ++++++++++-------- Makefile | 8 ++------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3d90e849..031c8d15 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22.6.0-alpine3.20 +FROM node:22.6.0-alpine3.20 as build RUN apk add --no-cache \ git \ @@ -9,14 +9,16 @@ ENV CHROMEDRIVER_FILEPATH=/usr/bin/chromedriver WORKDIR /app/ -COPY ./package.json /app/package.json -COPY ./yarn.lock /app/yarn.lock - -RUN yarn \ - && yarn cache clean +ARG NODE_ENV=production +ENV YARN_CACHE_FOLDER=/.yarn/ COPY . /app/ -ENV NODE_ENV=production +RUN \ + --mount=type=cache,target=/.yarn \ + NODE_ENV=development yarn install \ + && NODE_ENV=${NODE_ENV} yarn run build -ENTRYPOINT [ "yarn", "run" ] +FROM scratch as result + +COPY --from=build /app/dist/ / diff --git a/Makefile b/Makefile index 074bd076..2c3f4ad2 100644 --- a/Makefile +++ b/Makefile @@ -4,11 +4,7 @@ OUTFILE_ZIP ?= ./akkoma-fe.zip NODE_ENV ?= production .PHONY: all -all: build-docker build-fe package - -.PHONY: build-docker -build-docker: - $(RUNTIME) build -t akkoma-fe-builder . +all: build-fe package .PHONY: build-fe build-fe: @@ -18,7 +14,7 @@ else rm -rf $(BUILD_DIR) mkdir $(BUILD_DIR) endif - $(RUNTIME) run -e NODE_ENV=$(NODE_ENV) -v ${PWD}/dist/:/app/dist/:Z akkoma-fe-builder build + $(RUNTIME) build --build-arg NODE_ENV=$(NODE_ENV) --output type=local,dest=./dist/ . .PHONY: package package: