rebuild mediamtx for proper integration with rclone, need to add sh later for debug
This commit is contained in:
@@ -91,9 +91,10 @@ services:
|
|||||||
- proxy
|
- proxy
|
||||||
|
|
||||||
mediamtx:
|
mediamtx:
|
||||||
image: bluenviron/mediamtx:latest
|
build:
|
||||||
# restart: unless-stopped
|
context: ./mediamtx
|
||||||
# Expose default listeners for all common protocols
|
dockerfile: Dockerfile
|
||||||
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- "8554:8554" # RTSP
|
- "8554:8554" # RTSP
|
||||||
- "1935:1935" # RTMP
|
- "1935:1935" # RTMP
|
||||||
@@ -105,13 +106,6 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ./mediamtx/mediamtx.yml:/mediamtx.yml:ro,Z
|
- ./mediamtx/mediamtx.yml:/mediamtx.yml:ro,Z
|
||||||
- mediamtx-recordings:/recordings
|
- mediamtx-recordings:/recordings
|
||||||
networks:
|
|
||||||
- proxy
|
|
||||||
- snoopBack
|
|
||||||
|
|
||||||
rclone:
|
|
||||||
image: rclone/rclone:latest
|
|
||||||
command: rcd --rc-addr=:5572 --rc-no-auth
|
|
||||||
environment:
|
environment:
|
||||||
RCLONE_CONFIG_MINIO_TYPE: s3
|
RCLONE_CONFIG_MINIO_TYPE: s3
|
||||||
RCLONE_CONFIG_MINIO_PROVIDER: Minio
|
RCLONE_CONFIG_MINIO_PROVIDER: Minio
|
||||||
@@ -120,11 +114,10 @@ services:
|
|||||||
RCLONE_CONFIG_MINIO_SECRET_ACCESS_KEY: minioadmin
|
RCLONE_CONFIG_MINIO_SECRET_ACCESS_KEY: minioadmin
|
||||||
RCLONE_CONFIG_MINIO_REGION: us-east-1
|
RCLONE_CONFIG_MINIO_REGION: us-east-1
|
||||||
RCLONE_CONFIG_MINIO_FORCE_PATH_STYLE: "true"
|
RCLONE_CONFIG_MINIO_FORCE_PATH_STYLE: "true"
|
||||||
volumes:
|
|
||||||
- mediamtx-recordings:/recordings
|
|
||||||
networks:
|
networks:
|
||||||
- snoopBack
|
|
||||||
- proxy
|
- proxy
|
||||||
|
- snoopBack
|
||||||
|
|
||||||
|
|
||||||
# NEW: EMQX MQTT broker
|
# NEW: EMQX MQTT broker
|
||||||
emqx:
|
emqx:
|
||||||
|
|||||||
19
mediamtx/Dockerfile
Normal file
19
mediamtx/Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# ---- Stage 1: Build rclone ----
|
||||||
|
FROM alpine:3.20 AS rclone-builder
|
||||||
|
|
||||||
|
RUN apk add --no-cache curl unzip && \
|
||||||
|
curl -fsSL https://downloads.rclone.org/rclone-current-linux-amd64.zip -o /tmp/rclone.zip && \
|
||||||
|
unzip /tmp/rclone.zip -d /tmp && \
|
||||||
|
mv /tmp/rclone-*/rclone /usr/local/bin/rclone && \
|
||||||
|
chmod +x /usr/local/bin/rclone
|
||||||
|
|
||||||
|
# ---- Stage 2: Final image ----
|
||||||
|
FROM bluenviron/mediamtx:latest
|
||||||
|
|
||||||
|
# Copy only the rclone binary from the builder
|
||||||
|
COPY --from=rclone-builder /usr/local/bin/rclone /usr/local/bin/rclone
|
||||||
|
|
||||||
|
# Optional: verify installation (uncomment if debugging)
|
||||||
|
RUN ["/usr/local/bin/rclone", "version"]
|
||||||
|
|
||||||
|
ENTRYPOINT ["/mediamtx"]
|
||||||
@@ -59,14 +59,16 @@ pathDefaults:
|
|||||||
# \"dstFs\":\"minio:livestream\",
|
# \"dstFs\":\"minio:livestream\",
|
||||||
# \"dstRemote\":\"$MTX_PATH/$f\"}"'
|
# \"dstRemote\":\"$MTX_PATH/$f\"}"'
|
||||||
|
|
||||||
runOnRecordSegmentCreate: >
|
# runOnRecordSegmentCreate: >
|
||||||
sh -c 'd="$(dirname "$MTX_SEGMENT_PATH")";
|
# sh -c 'd="$(dirname "$MTX_SEGMENT_PATH")";
|
||||||
f="$(basename "$MTX_SEGMENT_PATH")";
|
# f="$(basename "$MTX_SEGMENT_PATH")";
|
||||||
curl -s -H "Content-Type: application/json"
|
# curl -s -H "Content-Type: application/json"
|
||||||
-X POST "http://rclone:5572/operations/copyfile?_async=true"
|
# -X POST "http://rclone:5572/operations/copyfile?_async=true"
|
||||||
-d "{\"srcFs\":\"$d\",\"srcRemote\":\"$f\",
|
# -d "{\"srcFs\":\"$d\",\"srcRemote\":\"$f\",
|
||||||
\"dstFs\":\"minio:livestream\",
|
# \"dstFs\":\"minio:livestream\",
|
||||||
\"dstRemote\":\"$MTX_PATH/$f\"}"'
|
# \"dstRemote\":\"$MTX_PATH/$f\"}"'
|
||||||
|
|
||||||
|
runOnRecordSegmentCreate: rclone copy "$MTX_SEGMENT_PATH" "minio:livestream/${MTX_SEGMENT_PATH#/recordings/whip/live/}" --progress
|
||||||
|
|
||||||
authInternalUsers:
|
authInternalUsers:
|
||||||
- user: any
|
- user: any
|
||||||
|
|||||||
Reference in New Issue
Block a user