2026-06-01 12:12:37 +07:00
|
|
|
FROM nixos/nix:latest
|
2026-06-01 10:53:20 +07:00
|
|
|
|
2026-06-01 12:12:37 +07:00
|
|
|
SHELL ["/bin/sh", "-c"]
|
2026-06-01 10:53:20 +07:00
|
|
|
|
2026-06-01 12:12:37 +07:00
|
|
|
ENV NIX_CONFIG="experimental-features = nix-command flakes"
|
|
|
|
|
|
2026-06-01 12:34:23 +07:00
|
|
|
# Pin nixpkgs to a specific commit for reproducible, conflict-free builds.
|
|
|
|
|
# The nixos-unstable channel changes rapidly and causes file conflicts
|
|
|
|
|
# between packages (e.g., cacert 3.123 vs 3.117, git vs git-minimal).
|
|
|
|
|
# Pinning ensures all packages are resolved from the same nixpkgs snapshot.
|
|
|
|
|
ARG NIXPKGS_COMMIT=7388966642e6a20b93860e5397e996af05c0e05c
|
|
|
|
|
|
2026-06-01 12:12:37 +07:00
|
|
|
RUN nix profile install \
|
2026-06-01 12:34:23 +07:00
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#nodejs_22" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#ffmpeg" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#python3" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#cacert" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#gnumake" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#gcc" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#pkg-config" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#vips" \
|
|
|
|
|
"github:NixOS/nixpkgs/${NIXPKGS_COMMIT}#yt-dlp"
|
2026-06-01 10:53:20 +07:00
|
|
|
|
|
|
|
|
RUN corepack enable
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
# Install deps from the app-local build context.
|
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml* ./
|
|
|
|
|
COPY vendor/discord-video-stream/package.json ./vendor/discord-video-stream/
|
|
|
|
|
COPY vendor/discord.js-selfbot-v13/package.json ./vendor/discord.js-selfbot-v13/
|
|
|
|
|
RUN pnpm install --no-frozen-lockfile
|
|
|
|
|
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
|
|
RUN pnpm run prepare:vendor
|
|
|
|
|
RUN pnpm run build
|
|
|
|
|
|
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
|
|
2026-06-01 12:34:23 +07:00
|
|
|
CMD ["pnpm", "run", "start"]
|