| |
| FROM node:21.0-alpine AS deps |
| WORKDIR /app |
|
|
| |
| RUN apk add --no-cache libc6-compat |
|
|
| COPY package.json yarn.lock ./ |
| RUN yarn install --frozen-lockfile |
|
|
| |
| FROM node:21.0-alpine AS builder |
| WORKDIR /app |
|
|
| COPY --from=deps /app/node_modules ./node_modules |
| COPY . . |
| RUN yarn build |
|
|
| |
| FROM node:21.0-alpine AS runner |
| WORKDIR /app |
|
|
| ENV NODE_ENV=production |
|
|
| |
| ENV SITE_NAME="Web-SyncPlay" |
| |
| ENV PUBLIC_DOMAIN="https://nailioq-webstrem.hf.space" |
|
|
| |
| ENV PORT=7860 |
| EXPOSE 7860 |
|
|
| LABEL org.opencontainers.image.url="https://nailioq-webstrem.hf.space" \ |
| org.opencontainers.image.description="Watch videos or play music in sync with your friends" \ |
| org.opencontainers.image.title="Web-SyncPlay" \ |
| maintainer="charlie <t.me/yucant>" |
|
|
| RUN addgroup -g 1001 -S nodejs && \ |
| adduser -S nextjs -u 1001 && \ |
| apk add --no-cache curl python3 py3-pip && \ |
| curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && \ |
| chmod a+rx /usr/local/bin/yt-dlp |
|
|
| |
| COPY --from=builder /app/public ./public |
| COPY --from=builder /app/package.json ./package.json |
| COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ |
| COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static |
|
|
| |
| RUN mkdir -p /app/.next/cache && chown -R nextjs:nodejs /app/.next |
|
|
| USER nextjs |
|
|
| |
| CMD ["sh", "-c", "node server.js"] |