-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
60 lines (41 loc) · 1.5 KB
/
Dockerfile
File metadata and controls
60 lines (41 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
FROM golang:1.25.3-alpine as processjobqueue
RUN apk add git openssh
WORKDIR /app
RUN git clone https://github.com/The-Focus-AI/shell-job-queue.git .
RUN go mod download
RUN go build -o processjobqueue main.go
RUN go install github.com/psanford/wormhole-william@latest
# Use official Node.js 24.2.0 image
FROM node:24.2.0-slim
# Copy processjobqueue binary from previous stage
COPY --from=processjobqueue /app/processjobqueue /usr/local/bin/
COPY --from=processjobqueue /go/bin/wormhole-william /usr/local/bin/wormhole
# Install system dependencies: ffmpeg and yt-dlp
RUN apt-get update && \
apt-get install -y ffmpeg wget && \
wget -O /usr/local/bin/yt-dlp https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp && \
chmod a+rx /usr/local/bin/yt-dlp && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# Install pnpm
RUN npm install -g pnpm
# Install Playwright browsers
RUN npx playwright install chromium
# Live on the edge
RUN yt-dlp --update-to master
# Set workdir
WORKDIR /app
# Copy package files and install dependencies
COPY package.json pnpm-lock.yaml ./
RUN pnpm install
# RUN pnpm install --frozen-lockfile
# Copy the rest of the code
COPY . .
# Create output directory
RUN mkdir -p /output
# Set environment variables (can be overridden at runtime)
ENV OUTPUT_DIR=/data/output
ENV JOBS_DIR=/data/jobs
# Entrypoint script
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]