Commit b288d92c authored by Grant's avatar Grant
Browse files

fix image to use yarn

parent 7d35fdfd
Loading
Loading
Loading
Loading
Loading
+17 −25
Original line number Diff line number Diff line
FROM node:23-alpine AS base
FROM node:24-alpine AS base
RUN apk add --no-cache openssl

FROM base AS dev_dep
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app

# --- dependencies ---
COPY --chown=node:node package*.json ./
COPY --chown=node:node backend/package*.json ./backend/
COPY --chown=node:node frontend/package*.json ./frontend/
COPY --chown=node:node .yarn ./.yarn
COPY --chown=node:node package.json yarn.lock .yarnrc.yml ./
COPY --chown=node:node backend/package.json ./backend/
COPY --chown=node:node frontend/package.json ./frontend/
RUN corepack enable && corepack prepare

USER node
RUN npm install --include=dev

FROM base AS dep
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app

# --- dependencies ---
COPY --chown=node:node package*.json ./
COPY --chown=node:node backend/package*.json ./backend/
COPY --chown=node:node frontend/package*.json ./frontend/
FROM base AS dev_dep
RUN yarn workspaces focus --all

USER node
RUN npm install --omit=dev
FROM base AS dep
RUN yarn workspaces focus --production --all

#
# === BUILDER ===
#

FROM base AS build
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
WORKDIR /home/node/app
FROM dev_dep AS build

COPY --from=dev_dep /home/node/app/ ./

@@ -39,21 +31,20 @@ COPY --chown=node:node . .

# --- build frontend ---

RUN npm -w frontend run build
RUN yarn workspace @fediverse-auth/frontend run build

# --- build backend ---

RUN npx -w backend prisma generate
RUN npm -w backend run build
RUN yarn workspace @fediverse-auth/backend prisma generate
RUN yarn workspace @fediverse-auth/backend run build

#
# === RUNNER ===
#

FROM base AS run
WORKDIR /home/node/app
COPY --from=dep /home/node/app/ ./
COPY package*.json docker-start.sh ./
COPY docker-start.sh ./

# --- prepare frontend ---

@@ -69,7 +60,8 @@ COPY --from=build /home/node/app/backend/dist ./backend/dist

# --- finalize ---

RUN npx -w backend prisma generate
COPY --from=build /home/node/app/node_modules/.prisma ./node_modules/.prisma
COPY --from=build /home/node/app/node_modules/@prisma ./node_modules/@prisma

# set runtime env variables

+4 −3
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
    "cookie-parser": "^1.4.6",
    "cors": "^2.8.5",
    "cron": "^4.3.0",
    "express": "^4.19.2",
    "express": "^4.22.1",
    "express-session": "^1.18.0",
    "ioredis": "^5.6.1",
    "oidc-provider": "^8.8.1",
@@ -29,8 +29,8 @@
    "@hongminhee/localtunnel": "^0.3.0",
    "@types/cookie-parser": "^1.4.7",
    "@types/cors": "^2.8.17",
    "@types/express": "^4.17.21",
    "@types/express-session": "^1.18.0",
    "@types/express": "^4.17.25",
    "@types/express-session": "^1.18.2",
    "@types/node": "^20.12.10",
    "@types/oidc-provider": "^8.4.4",
    "dotenv": "^16.4.5",
@@ -43,6 +43,7 @@
    "dev": "tsx watch -r dotenv/config src/index.ts",
    "dev:client": "tsx -r dotenv/config src/tools/create-dev-client.ts",
    "build": "tsc",
    "test:types": "tsc --noEmit",
    "start": "node dist/index.js",
    "test": "vitest",
    "ci:test": "vitest --reporter=junit --outputFile=./vitest.xml"
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ app.get("/.well-known/openid-configuration", oidc.callback());
app.use(bodyParser.json());

app.use(
  // @ts-ignore this type is correct *shrug*
  session({
    secret: process.env.SESSION_SECRET!,
    resave: false,
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@
    "moduleResolution": "Node16",
    "target": "ES2022",
    "lib": ["ES2023"],
    "module": "node16",
    "module": "nodenext",
    "resolveJsonModule": true,
    "isolatedModules": true
  },
+6 −6
Original line number Diff line number Diff line
@@ -594,8 +594,8 @@ __metadata:
    "@tsconfig/recommended": "npm:^1.0.6"
    "@types/cookie-parser": "npm:^1.4.7"
    "@types/cors": "npm:^2.8.17"
    "@types/express": "npm:^4.17.21"
    "@types/express-session": "npm:^1.18.0"
    "@types/express": "npm:^4.17.25"
    "@types/express-session": "npm:^1.18.2"
    "@types/node": "npm:^20.12.10"
    "@types/oidc-provider": "npm:^8.4.4"
    body-parser: "npm:^1.20.2"
@@ -603,7 +603,7 @@ __metadata:
    cors: "npm:^2.8.5"
    cron: "npm:^4.3.0"
    dotenv: "npm:^16.4.5"
    express: "npm:^4.19.2"
    express: "npm:^4.22.1"
    express-session: "npm:^1.18.0"
    ioredis: "npm:^5.6.1"
    oidc-provider: "npm:^8.8.1"
@@ -1711,7 +1711,7 @@ __metadata:
  languageName: node
  linkType: hard

"@types/express-session@npm:^1.18.0":
"@types/express-session@npm:^1.18.2":
  version: 1.18.2
  resolution: "@types/express-session@npm:1.18.2"
  dependencies:
@@ -1731,7 +1731,7 @@ __metadata:
  languageName: node
  linkType: hard

"@types/express@npm:^4.17.21":
"@types/express@npm:^4.17.25":
  version: 4.17.25
  resolution: "@types/express@npm:4.17.25"
  dependencies:
@@ -3393,7 +3393,7 @@ __metadata:
  languageName: node
  linkType: hard

"express@npm:^4.19.2":
"express@npm:^4.22.1":
  version: 4.22.1
  resolution: "express@npm:4.22.1"
  dependencies: