Last active
August 6, 2025 15:59
-
-
Save Izumiko/ca5a53c31f1425783bdc7af6b18eeab1 to your computer and use it in GitHub Desktop.
Dockerfile for NasCab
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| FROM alpine:latest AS builder | |
| # Change repository to aliyun | |
| # RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories | |
| # Install dependencies | |
| RUN apk update && apk upgrade && \ | |
| apk add --no-cache nodejs npm python3 curl && \ | |
| apk add --no-cache --virtual build-dependencies gcc g++ make cmake gfortran libffi-dev openssl-dev libtool && \ | |
| apk add --no-cache vips-heif vips-tools vips-cpp vips-dev && \ | |
| apk add --no-cache ffmpeg && \ | |
| rm -rf /var/cache/apk/* | |
| # Install node-prune | |
| RUN curl -sf https://gobinaries.com/tj/node-prune | PREFIX=/usr/local/bin sh | |
| # Working directory | |
| WORKDIR /nascab | |
| # Copy source code | |
| COPY ./app/ ./app/ | |
| COPY ./certs/ ./certs/ | |
| COPY ./web/ ./web/ | |
| COPY ./database/ ./database/ | |
| COPY ./libs/256x256.png ./libs/256x256.png | |
| COPY ./libs/logo-tray.png ./libs/logo-tray.png | |
| COPY ./libs/logo.png ./libs/logo.png | |
| COPY ./libs/transcodetest ./libs/transcodetest | |
| COPY ./libs/transcodetesth264 ./libs/transcodetesth264 | |
| # Copy package.json | |
| COPY ./package.json . | |
| RUN chmod -R 777 ./libs | |
| # Install dependencies | |
| RUN npm install && npm prune --production && /usr/local/bin/node-prune | |
| FROM alpine:latest | |
| # Install dependencies | |
| RUN apk update && apk upgrade && \ | |
| apk add --no-cache nodejs python3 && \ | |
| apk add --no-cache vips-heif vips-tools vips-cpp && \ | |
| apk add --no-cache ffmpeg && \ | |
| rm -rf /var/cache/apk/* | |
| # Working directory | |
| WORKDIR /nascab | |
| # Copy from build image | |
| COPY --from=builder /nascab . | |
| # Expose port | |
| EXPOSE 21 | |
| EXPOSE 80 | |
| EXPOSE 443 | |
| EXPOSE 90 | |
| # Volume | |
| VOLUME ["/root/.local/share/nascab"] | |
| # Cmd | |
| CMD ["node", "app/main.js"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| FROM ypptec/nascab:latest AS SRC_IMAGE | |
| FROM alpine:3.18 AS BUILD_IMAGE | |
| # Change repository to aliyun | |
| RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories | |
| # Install dependencies | |
| RUN apk update && apk upgrade && \ | |
| apk add --no-cache nodejs npm python3 curl && \ | |
| apk add --no-cache --virtual build-dependencies gcc g++ make cmake gfortran libffi-dev openssl-dev libtool && \ | |
| apk add --no-cache vips-heif vips-tools vips-cpp vips-dev && \ | |
| apk add --no-cache ffmpeg && \ | |
| rm -rf /var/cache/apk/* | |
| # Install node-prune | |
| RUN curl -sf https://gobinaries.com/tj/node-prune | PREFIX=/usr/local/bin sh | |
| # Working directory | |
| WORKDIR /nascab | |
| # Copy source code | |
| COPY --from=SRC_IMAGE /nascab . | |
| # Reinstall dependencies | |
| RUN rm -rf ./node_modules && npm install | |
| # Prune dev dependencies | |
| RUN npm prune --production | |
| # Prune unused files | |
| RUN /usr/local/bin/node-prune | |
| FROM alpine:3.18 | |
| # Install dependencies | |
| RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ | |
| apk update && apk upgrade && \ | |
| apk add --no-cache python3 && \ | |
| apk add --no-cache vips-heif vips-tools vips-cpp vips-dev && \ | |
| apk add --no-cache ffmpeg && \ | |
| rm -rf /var/cache/apk/* && \ | |
| npm install -g bytenode | |
| # Working directory | |
| WORKDIR /nascab | |
| # Copy from build image | |
| COPY --from=BUILD_IMAGE /nascab . | |
| # Expose port | |
| EXPOSE 21 | |
| EXPOSE 80 | |
| EXPOSE 443 | |
| EXPOSE 90 | |
| # Volume | |
| VOLUME ["/root/.local/share/nascab"] | |
| # Cmd | |
| CMD ["bytenode", "/nascab/app/main.jsc"] |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
esbuild app_deobfuscated/main.js app_deobfuscated/myWorkers/index/bookIndexWorker.js app_deobfuscated/myWorkers/index/musicIndexWorker.js app_deobfuscated/myWorkers/index/fileWatcherWorker.js app_deobfuscated/myWorkers/index/photoIndexWorker.js app_deobfuscated/myWorkers/index/movieIndexWorker.js app_deobfuscated/myWorkers/movieInfoWorker.js app_deobfuscated/myWorkers/tinyImgWorker.js app_deobfuscated/myWorkers/shareFolder/shareFtp.js app_deobfuscated/myWorkers/shareFolder/shareWebDav.js app_deobfuscated/myWorkers/ddnsWorker.js app_deobfuscated/myWorkers/globalInfoWorker.js app_deobfuscated/myWorkers/ai/aiFaceUtil.js app_deobfuscated/myWorkers/ai/aiSimilarPhotos.js app_deobfuscated/myWorkers/ai/aiClassify.js app_deobfuscated/myWorkers/bg/backupWorker.js app_deobfuscated/myWorkers/m3u8Worker.js app_deobfuscated/myWorkers/proxy/proxyWorker.js app_deobfuscated/myWorkers/subtitlesGenWorker.js app_deobfuscated/myWorkers/expressWorker.js app_deobfuscated/myWorkers/bg/fileOperationWorker.js app_deobfuscated/myWorkers/bg/bgTaskWorker.js --bundle --platform=node --outdir=./dist --external:diskusage --external:psd --external:sharp --external:better-sqlite3 --external:nsfw --external:drivelist --external:react-native-fs --external:dtrace-provider --external:jsdom