Initial Cloudron package for Jellyseerr
- 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
This commit is contained in:
78
Dockerfile
Normal file
78
Dockerfile
Normal file
@@ -0,0 +1,78 @@
|
||||
# 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" ]
|
||||
|
||||
Reference in New Issue
Block a user