- Add CloudronManifest.json with app configuration - Add Dockerfile with Node.js 22 support and multi-stage build - Add start.sh script for runtime initialization - Add icon.png for the app - Update README.md with installation and usage instructions - Configure config directory symlink to /app/data for persistent storage
79 lines
2.5 KiB
Docker
79 lines
2.5 KiB
Docker
# build stage
|
|
FROM cloudron/base:5.0.0@sha256:6bec2b5246567ef8b5b13ca0af756e2e596941e440d76b46635211cd84383922 AS build_image
|
|
|
|
WORKDIR /app
|
|
|
|
# Install Node.js 22 (required by Jellyseerr)
|
|
# Remove old Node.js installation and install Node.js 22 binary directly
|
|
RUN apt-get update && \
|
|
apt-get install -y curl xz-utils && \
|
|
rm -rf /usr/local/node-* && \
|
|
NODE_VERSION="22.11.0" && \
|
|
ARCH="x64" && \
|
|
curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.xz" -o /tmp/node.tar.xz && \
|
|
tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 && \
|
|
rm /tmp/node.tar.xz && \
|
|
ln -sf /usr/local/bin/node /usr/bin/node && \
|
|
ln -sf /usr/local/bin/npm /usr/bin/npm && \
|
|
node --version && \
|
|
npm --version && \
|
|
which node
|
|
|
|
# Install pnpm
|
|
RUN npm install --global pnpm
|
|
|
|
RUN git clone https://github.com/Fallenbagel/jellyseerr.git && cd jellyseerr
|
|
|
|
WORKDIR /app/jellyseerr
|
|
|
|
# Verify Node.js version before installing
|
|
RUN node --version && \
|
|
which node && \
|
|
CYPRESS_INSTALL_BINARY=0 pnpm install --frozen-lockfile
|
|
|
|
RUN pnpm build
|
|
|
|
# remove development dependencies
|
|
RUN pnpm prune --prod --ignore-scripts
|
|
|
|
RUN rm -rf src server .next/cache
|
|
|
|
# runtime stage
|
|
FROM cloudron/base:5.0.0@sha256:6bec2b5246567ef8b5b13ca0af756e2e596941e440d76b46635211cd84383922
|
|
|
|
WORKDIR /app/code/jellyseerr
|
|
|
|
# Install Node.js 22 for runtime as well
|
|
# Remove old Node.js installation and install Node.js 22 binary directly
|
|
RUN apt-get update && \
|
|
apt-get install -y curl xz-utils && \
|
|
rm -rf /usr/local/node-* && \
|
|
NODE_VERSION="22.11.0" && \
|
|
ARCH="x64" && \
|
|
curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${ARCH}.tar.xz" -o /tmp/node.tar.xz && \
|
|
tar -xJf /tmp/node.tar.xz -C /usr/local --strip-components=1 && \
|
|
rm /tmp/node.tar.xz && \
|
|
ln -sf /usr/local/bin/node /usr/bin/node && \
|
|
ln -sf /usr/local/bin/npm /usr/bin/npm && \
|
|
node --version && \
|
|
npm --version && \
|
|
which node
|
|
|
|
# Install pnpm
|
|
RUN npm install -g pnpm
|
|
|
|
RUN mkdir -p /app/code/jellyseerr
|
|
|
|
COPY --from=build_image /app/jellyseerr /app/code/jellyseerr
|
|
|
|
# Remove the read-only config directory from source and create symlink to persistent storage
|
|
# The symlink points to /app/data/config which will be mounted by Cloudron at runtime
|
|
RUN rm -rf /app/code/jellyseerr/config && \
|
|
ln -s /app/data/config /app/code/jellyseerr/config
|
|
|
|
COPY start.sh /app/code/start.sh
|
|
RUN chmod +x /app/code/start.sh
|
|
|
|
CMD [ "/app/code/start.sh" ]
|
|
|