fix: Docker build with Yarn 4 (#11031)

* Add missing corepack

* Serialize plugin gen to protect memory

* fix: Missing Yarn4 config

* Prune dev deps
This commit is contained in:
Tom Moor
2025-12-31 22:29:25 -05:00
committed by GitHub
parent 755833c64c
commit c3b91a8441
4 changed files with 23 additions and 21 deletions
+1
View File
@@ -15,3 +15,4 @@ crowdin.yml
build
docker-compose.yml
node_modules
.yarn
+2
View File
@@ -32,6 +32,8 @@ RUN apt-get update \
&& apt-get install -y wget \
&& rm -rf /var/lib/apt/lists/*
RUN corepack enable
ENV FILE_STORAGE_LOCAL_ROOT_DIR=/var/lib/outline/data
RUN mkdir -p "$FILE_STORAGE_LOCAL_ROOT_DIR" && \
chown -R nodejs:nodejs "$FILE_STORAGE_LOCAL_ROOT_DIR" && \
+2 -4
View File
@@ -3,7 +3,7 @@ FROM node:22.21.0 AS deps
ARG APP_PATH
WORKDIR $APP_PATH
COPY ./package.json ./yarn.lock ./
COPY ./package.json ./yarn.lock ./.yarnrc.yml ./
COPY ./patches ./patches
RUN apt-get update && apt-get install -y cmake
@@ -17,9 +17,7 @@ COPY . .
ARG CDN_URL
RUN yarn build
RUN rm -rf node_modules
RUN yarn install --immutable --network-timeout 1000000 && \
RUN yarn workspaces focus --production && \
yarn cache clean
ENV PORT=3000
+18 -17
View File
@@ -46,25 +46,26 @@ async function build() {
execAsync(
"yarn babel --extensions .ts,.tsx --quiet -d ./build/shared ./shared"
),
...d.map(async (plugin) => {
const hasServer = existsSync(`./plugins/${plugin}/server`);
if (hasServer) {
await execAsync(
`yarn babel --extensions .ts,.tsx --quiet -d "./build/plugins/${plugin}/server" "./plugins/${plugin}/server"`
);
}
const hasShared = existsSync(`./plugins/${plugin}/shared`);
if (hasShared) {
await execAsync(
`yarn babel --extensions .ts,.tsx --quiet -d "./build/plugins/${plugin}/shared" "./plugins/${plugin}/shared"`
);
}
}),
]);
for (const plugin of d) {
const hasServer = existsSync(`./plugins/${plugin}/server`);
if (hasServer) {
await execAsync(
`yarn babel --extensions .ts,.tsx --quiet -d "./build/plugins/${plugin}/server" "./plugins/${plugin}/server"`
);
}
const hasShared = existsSync(`./plugins/${plugin}/shared`);
if (hasShared) {
await execAsync(
`yarn babel --extensions .ts,.tsx --quiet -d "./build/plugins/${plugin}/shared" "./plugins/${plugin}/shared"`
);
}
}
// Copy static files
console.log("Copying static files…");
await Promise.all([