-
-
Notifications
You must be signed in to change notification settings - Fork 51
/
docker-compose.yml
82 lines (72 loc) · 2.98 KB
/
docker-compose.yml
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
version: "3.9"
services:
dist:
image: selkies-gstreamer-py-build
build:
context: .
dockerfile: Dockerfile
args:
PYPI_PACKAGE: selkies-gstreamer
PACKAGE_VERSION: 0.0.0.dev0
web:
image: gst-web
build:
context: ./addons/gst-web
dockerfile: Dockerfile
test:
###
# NOTE: export the DISTRIB_IMAGE and DISTRIB_RELEASE environment variables to change the base image during build and run.
###
image: selkies-gstreamer-example:latest-${DISTRIB_IMAGE:-ubuntu}${DISTRIB_RELEASE:-24.04}
entrypoint: ["/tini", "--", "/bin/bash"]
build:
context: ./addons/example
dockerfile: Dockerfile
args:
DISTRIB_IMAGE: ${DISTRIB_IMAGE:-ubuntu}
DISTRIB_RELEASE: ${DISTRIB_RELEASE:-24.04}
# Testing with gstreamer build in-repo:
# 1. (cd addons/gstreamer && docker build --build-arg DISTRIB_IMAGE=${DISTRIB_IMAGE?} --build-arg DISTRIB_RELEASE=${DISTRIB_RELEASE?} -t gstreamer:latest-${DISTRIB_IMAGE?}${DISTRIB_RELEASE?} .)
# 2. export GSTREAMER_BASE_IMAGE=gstreamer
# 3. docker-compose build test
GSTREAMER_BASE_IMAGE: ${GSTREAMER_BASE_IMAGE:-ghcr.io/selkies-project/selkies-gstreamer/gstreamer}
GSTREAMER_BASE_IMAGE_RELEASE: ${GSTREAMER_BASE_IMAGE_RELEASE:-main}
PY_BUILD_IMAGE: selkies-gstreamer-py-build:latest
WEB_IMAGE: gst-web:latest
PYPI_PACKAGE: selkies_gstreamer
PACKAGE_VERSION: 0.0.0.dev0
environment:
# Basic authentication
SELKIES_ENABLE_BASIC_AUTH: ${SELKIES_ENABLE_BASIC_AUTH}
SELKIES_BASIC_AUTH_USER: ${SELKIES_BASIC_AUTH_USER}
SELKIES_BASIC_AUTH_PASSWORD: ${SELKIES_BASIC_AUTH_PASSWORD}
# TURN with shared secret or user/pass
SELKIES_TURN_SHARED_SECRET: ${SELKIES_TURN_SHARED_SECRET}
SELKIES_TURN_HOST: ${SELKIES_TURN_HOST}
SELKIES_TURN_PORT: ${SELKIES_TURN_PORT}
SELKIES_TURN_USERNAME: ${SELKIES_TURN_USERNAME}
SELKIES_TURN_PASSWORD: ${SELKIES_TURN_PASSWORD}
# Turn with coTURN web
SELKIES_TURN_REST_URI: ${SELKIES_TURN_REST_URI}
SELKIES_TURN_REST_USERNAME: ${SELKIES_TURN_REST_USERNAME}
SELKIES_TURN_REST_AUTHHEADER: ${SELKIES_TURN_REST_AUTHHEADER}
# Additional server-side settings.
SELKIES_ENABLE_RESIZE: ${SELKIES_ENABLE_RESIZE}
# DEBUG remote cursors
SELKIES_DEBUG_CURSORS: ${SELKIES_DEBUG_CURSORS:-false}
# Start full XFCE4 session, vs just X11 server.
START_XFCE4: ${START_XFCE4:-true}
ports:
- "8080:8080"
volumes:
- type: bind
source: ./src/selkies_gstreamer
# Change Python version to system version
target: /usr/local/lib/python3.12/dist-packages/selkies_gstreamer
read_only: true
# Configure for interactive session
stdin_open: true
tty: true