File: docker-compose.yml

package info (click to toggle)
js8call 2.5.2%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,720 kB
  • sloc: cpp: 562,651; sh: 898; python: 132; ansic: 102; makefile: 4
file content (114 lines) | stat: -rw-r--r-- 2,825 bytes parent folder | download
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
version: '3.8'

services:
  # Base image with all build dependencies
  js8call-base:
    build:
      context: .
      dockerfile: Dockerfile.base
    image: js8call-base:ubuntu-24.04

  # Hamlib builder (depends on base)
  hamlib-builder:
    build:
      context: .
      dockerfile: Dockerfile.hamlib
      cache_from:
        - js8call-base:ubuntu-24.04
        - js8call-hamlib:latest
    image: js8call-hamlib:latest
    depends_on:
      - js8call-base

  # Main build service
  js8call-build:
    build:
      context: ..
      dockerfile: docker/Dockerfile
      target: output
      cache_from:
        - js8call-base:ubuntu-24.04
        - js8call-hamlib:latest
        - js8call-builder:ubuntu-24.04
      args:
        BUILDKIT_INLINE_CACHE: 1
    image: js8call-builder:ubuntu-24.04
    container_name: js8call-build
    volumes:
      - ./output:/output
      - ccache:/ccache
    environment:
      - CCACHE_DIR=/ccache
    command: |
      sh -c "cp /*.deb /*.AppImage /output/ 2>/dev/null || true"
    depends_on:
      - hamlib-builder

  # Development build with shell access
  js8call-dev:
    build:
      context: ..
      dockerfile: docker/Dockerfile
      target: development
      cache_from:
        - js8call-base:ubuntu-24.04
        - js8call-hamlib:latest
    image: js8call-dev:ubuntu-24.04
    container_name: js8call-dev
    volumes:
      - ..:/js8call-prefix/src
      - ./output:/output
      - ccache:/ccache
    environment:
      - CCACHE_DIR=/ccache
    working_dir: /js8call-prefix/build
    command: /bin/bash
    stdin_open: true
    tty: true
    depends_on:
      - hamlib-builder

  # Quick rebuild service (uses existing images)
  js8call-rebuild:
    build:
      context: ..
      dockerfile: docker/Dockerfile
      target: js8call-builder
      cache_from:
        - js8call-builder:ubuntu-24.04
    image: js8call-rebuild:latest
    volumes:
      - ccache:/ccache
    environment:
      - CCACHE_DIR=/ccache
    depends_on:
      - hamlib-builder

  # Runtime service for running JS8Call with GUI
  js8call-runtime:
    build:
      context: .
      dockerfile: Dockerfile.runtime
    image: js8call-runtime:ubuntu-24.04
    container_name: js8call-runtime
    environment:
      - DISPLAY=${DISPLAY}
      - XAUTHORITY=/tmp/.docker.xauth
      - PULSE_SERVER=unix:/tmp/pulse-socket
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix:rw
      - /tmp/.docker.xauth:/tmp/.docker.xauth:rw
      - ./output/js8call-x86_64.AppImage:/opt/js8call/js8call.AppImage:ro
      - ~/.config/JS8Call:/home/js8call/.config/JS8Call
      # Audio - PulseAudio socket (adjust path as needed)
      - /run/user/1000/pulse/native:/tmp/pulse-socket
    devices:
      - /dev/dri
      - /dev/snd
    network_mode: host
    stdin_open: true
    tty: true

volumes:
  ccache:
    driver: local