mirror of
https://github.com/CaramelFur/Picsur.git
synced 2025-10-25 23:46:06 +02:00
Make build process work with pnpm
This commit is contained in:
@@ -8,12 +8,12 @@
|
||||
"type": "module",
|
||||
"main": "dist/main.js",
|
||||
"scripts": {
|
||||
"prebuild": "rimraf dist",
|
||||
"prebuild": "rm -rf dist",
|
||||
"build": "nest build",
|
||||
"start": "nest start",
|
||||
"start:dev": "pnpm clean && nest start --watch",
|
||||
"start:debug": "nest start --debug --watch",
|
||||
"start:prod": "node --experimental-loader=extensionless dist/main",
|
||||
"start:prod": "node dist/main",
|
||||
"typeorm": "typeorm-ts-node-esm",
|
||||
"migrate": "PICSUR_PRODUCTION=\"true\" pnpm typeorm migration:generate -d ./src/datasource.ts",
|
||||
"format": "prettier --write \"src/**/*.ts\"",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"private": true,
|
||||
"version": "0.5.3",
|
||||
"version": "0.5.4",
|
||||
"scripts": {
|
||||
"devdb:start": "docker-compose -f ./support/dev.docker-compose.yml up -d",
|
||||
"devdb:stop": "docker-compose -f ./support/dev.docker-compose.yml down",
|
||||
|
||||
@@ -24,7 +24,12 @@ VERSION=$(cat ../package.json | grep version | head -1 | awk -F: '{ print $2 }'
|
||||
echo "Building version $VERSION"
|
||||
|
||||
# Allow host networking for buildx
|
||||
docker buildx create --append --name picsur --driver-opt network=host
|
||||
# First check if builder exists
|
||||
if docker buildx ls | grep -q picsur; then
|
||||
docker buildx create --name picsur --append --driver-opt network=host
|
||||
else
|
||||
docker buildx create --name picsur --driver-opt network=host
|
||||
fi
|
||||
|
||||
docker build \
|
||||
--push \
|
||||
|
||||
@@ -1,25 +1,27 @@
|
||||
# This dockerfile only builds the javascript part of the project, so tsc and angular compilation
|
||||
|
||||
FROM node:20 AS BUILDER_STAGE1
|
||||
FROM node:20 AS builder_stage1
|
||||
|
||||
RUN npm install -g pnpm
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
ADD . /picsur
|
||||
WORKDIR /picsur
|
||||
|
||||
RUN yarn workspaces focus -A
|
||||
RUN pnpm install --frozen-lockfile
|
||||
|
||||
RUN yarn workspace picsur-shared build
|
||||
RUN yarn workspace picsur-frontend build
|
||||
RUN yarn workspace picsur-backend build
|
||||
RUN pnpm --filter picsur-shared build
|
||||
RUN pnpm --filter picsur-frontend build
|
||||
RUN pnpm --filter picsur-backend build
|
||||
|
||||
RUN mkdir -p /trimmed
|
||||
|
||||
RUN cp -r --parents ./{package.json,yarn.lock,.yarnrc.yml,branding} /trimmed
|
||||
RUN cp -r --parents ./{package.json,pnpm-lock.yaml,pnpm-workspace.yaml,branding} /trimmed
|
||||
RUN cp -r --parents ./{frontend,backend,shared}/{dist,package.json} /trimmed
|
||||
|
||||
FROM scratch
|
||||
|
||||
WORKDIR /picsur
|
||||
ADD .yarn .yarn
|
||||
COPY --from=BUILDER_STAGE1 /trimmed ./
|
||||
|
||||
COPY --from=builder_stage1 /trimmed ./
|
||||
|
||||
@@ -1,22 +1,27 @@
|
||||
# This dockerfile than builds the production dependencies and the final image
|
||||
|
||||
# Always fetch amd64 image
|
||||
FROM ghcr.io/caramelfur/picsur-alpha-stage1:latest AS BUILDER_STAGE1
|
||||
FROM ghcr.io/caramelfur/picsur-alpha-stage1:latest AS builder_stage1
|
||||
|
||||
FROM node:20-alpine AS BUILDER_STAGE2
|
||||
FROM node:20-alpine AS builder_stage2
|
||||
|
||||
RUN npm install -g pnpm
|
||||
|
||||
RUN apk add python3 build-base
|
||||
|
||||
WORKDIR /picsur
|
||||
COPY --from=BUILDER_STAGE1 /picsur ./
|
||||
COPY --from=builder_stage1 /picsur ./
|
||||
|
||||
RUN yarn workspaces focus -A --production
|
||||
RUN pnpm install --frozen-lockfile --prod
|
||||
|
||||
FROM node:20-alpine
|
||||
|
||||
RUN npm install -g pnpm
|
||||
|
||||
ENV PICSUR_PRODUCTION=true
|
||||
|
||||
WORKDIR /picsur
|
||||
COPY --from=BUILDER_STAGE2 /picsur ./
|
||||
COPY --from=builder_stage2 /picsur ./
|
||||
|
||||
CMD ["pnpm", "--filter", "picsur-backend", "start:prod"]
|
||||
|
||||
CMD yarn workspace picsur-backend start:prod
|
||||
|
||||
Reference in New Issue
Block a user