diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 11a6d970d557..de89bc644fcc 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,7 @@ // https://github.com/devcontainers/images/blob/v0.4.19/src/typescript-node/.devcontainer/devcontainer.json { "name": "Node.js & TypeScript", - "image": "mcr.microsoft.com/devcontainers/typescript-node:24-bookworm", + "image": "mcr.microsoft.com/devcontainers/typescript-node:24-trixie", "features": { "ghcr.io/devcontainers/features/docker-in-docker": { "version": "latest" @@ -40,7 +40,7 @@ } }, - "onCreateCommand": "sudo apt-get update && export DEBIAN_FRONTEND=noninteractive && sudo apt-get -y install --no-install-recommends ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libcairo2 libcups2 libdbus-1-3 libexpat1 libgbm1 libglib2.0-0 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-utils redis-server default-jre-headless && sudo apt-get autoremove -y && sudo apt-get clean -y && sudo rm -rf /var/lib/apt/lists/*", + "onCreateCommand": "sudo apt-get update && export DEBIAN_FRONTEND=noninteractive && sudo apt-get -y install --no-install-recommends ca-certificates fonts-liberation libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libcairo2 libcups2t64 libdbus-1-3 libexpat1 libgbm1 libglib2.0-0t64 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-utils redis-server default-jre-headless && sudo apt-get autoremove -y && sudo apt-get clean -y && sudo rm -rf /var/lib/apt/lists/*", "updateContentCommand": "export JAVA_HOME=/usr/lib/jvm/default-java && pnpm config set store-dir ~/.local/share/pnpm/store && pnpm i && pnpm rb && pnpx rebrowser-puppeteer browsers install chrome", diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c51c8f21eecd..626413139465 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -95,7 +95,7 @@ jobs: if: ${{ matrix.chromium.dependency != '' }} # 'chromium-browser' from Ubuntu APT repo is a dummy package. Its version (85.0.4183.83) means # nothing since it calls Snap (disgusting!) to install Chromium, which should be up-to-date. - # That's not really a problem since the Chromium-bundled Docker image is based on Debian bookworm, + # That's not really a problem since the Chromium-bundled Docker image is based on Debian trixie, # which provides up-to-date native packages. run: | set -eux diff --git a/Dockerfile b/Dockerfile index 6683193b7ed6..1aa48a99948d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:24-bookworm AS dep-builder +FROM node:24-trixie AS dep-builder # Here we use the non-slim image to provide build-time deps (compilers and python), thus no need to install later. # This effectively speeds up qemu-based cross-build. @@ -30,11 +30,11 @@ RUN \ # --------------------------------------------------------------------------------------------------------------------- -FROM debian:bookworm-slim AS dep-version-parser +FROM debian:trixie-slim AS dep-version-parser # This stage is necessary to limit the cache miss scope. # With this stage, any modification to package.json won't break the build cache of the next two stages as long as the # version unchanged. -# node:24-bookworm-slim is based on debian:bookworm-slim so this stage would not cause any additional download. +# node:24-trixie-slim is based on debian:trixie-slim so this stage would not cause any additional download. WORKDIR /ver COPY ./package.json /app/ @@ -46,7 +46,7 @@ RUN \ # --------------------------------------------------------------------------------------------------------------------- -FROM node:24-bookworm-slim AS docker-minifier +FROM node:24-trixie-slim AS docker-minifier # The stage is used to further reduce the image size by removing unused files. WORKDIR /minifier @@ -83,7 +83,7 @@ RUN \ # --------------------------------------------------------------------------------------------------------------------- -FROM node:24-bookworm-slim AS chromium-downloader +FROM node:24-trixie-slim AS chromium-downloader # This stage is necessary to improve build concurrency and minimize the image size. # Yeah, downloading Chromium never needs those dependencies below. @@ -115,7 +115,7 @@ RUN \ # --------------------------------------------------------------------------------------------------------------------- -FROM node:24-bookworm-slim AS app +FROM node:24-trixie-slim AS app LABEL org.opencontainers.image.authors="https://github.com/DIYgod/RSSHub" @@ -127,8 +127,7 @@ WORKDIR /app # install deps first to avoid cache miss or disturbing buildkit to build concurrently ARG TARGETPLATFORM ARG PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 -# https://playwright.dev/docs/docker#introduction -# https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.en.html#noteworthy-obsolete-packages +# https://playwright.dev/docs/library#browser-downloads # On arm/arm64, install Chromium from the distribution repositories. RUN \ set -ex && \ @@ -140,8 +139,8 @@ RUN \ if [ "$TARGETPLATFORM" = 'linux/amd64' ]; then \ apt-get install -yq --no-install-recommends \ ca-certificates fonts-liberation wget xdg-utils \ - libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libcairo2 libcups2 libdbus-1-3 libdrm2 \ - libexpat1 libgbm1 libglib2.0-0 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 \ + libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libcairo2 libcups2t64 libdbus-1-3 libdrm2 \ + libexpat1 libgbm1 libglib2.0-0t64 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 \ libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 \ ; \ else \