-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathDockerfile
More file actions
41 lines (29 loc) · 942 Bytes
/
Dockerfile
File metadata and controls
41 lines (29 loc) · 942 Bytes
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
FROM golang:1.24-alpine AS builder
# Set the working directory
WORKDIR /app
# Copy the Go source code into the container
COPY ./ .
# Build the Go binary based on the target architecture
ARG TARGETARCH
RUN GOOS=linux GOARCH=$TARGETARCH go build -o explo ./src/main/
FROM python:3.12-alpine
# Install runtime deps: libc compat, ffmpeg, yt-dlp, tzdata, shadow for user management, su-exec for user switching
RUN apk add --no-cache \
libc6-compat \
ffmpeg \
yt-dlp \
tzdata \
shadow \
su-exec
# Install ytmusicapi in the container
RUN pip install --no-cache-dir ytmusicapi
# Set working directory
WORKDIR /opt/explo/
# Copy entrypoint, binary, python helper
COPY ./docker/start.sh /start.sh
COPY --from=builder /app/explo .
COPY src/downloader/youtube_music/search_ytmusic.py .
RUN chmod +x /start.sh ./explo
# Can be defined from compose as well
ENV WEEKLY_EXPLORATION_SCHEDULE="15 0 * * 2"
CMD ["/start.sh"]