forked from home-assistant/addons
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
123 lines (119 loc) · 3.25 KB
/
Dockerfile
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
115
116
117
118
119
120
121
122
123
ARG BUILD_FROM
FROM ${BUILD_FROM}
# Base env settings
ENV \
LANG="en_US.utf8" \
PULSE_SERVER=unix:/run/audio/pulse.sock \
THINGENGINE_HOME="/data/almond-server" \
THINGENGINE_HAS_REVERSE_PROXY=true \
THINGENGINE_HOST_BASED_AUTHENTICATION=insecure \
THINGENGINE_IN_HOME_ASSISTANT_ADDON=true
ARG \
BUILD_ARCH \
GENIE_CLIENT_VERSION \
GENIE_SERVER_VERSION
WORKDIR /usr/src
RUN \
set -x \
&& apt-get update \
# Install runtime dependencies
&& apt-get install -y --no-install-recommends \
wget \
curl \
gnupg \
pulseaudio \
pulseaudio-utils \
libpulse0 \
libpulse-mainloop-glib0 \
libasound2 \
libjson-glib-1.0-0 \
libevdev2 \
libsoup2.4-1 \
libspeexdsp1 \
libwebrtc-audio-processing1 \
sound-theme-freedesktop \
unzip \
coreutils \
ca-certificates \
zip \
nginx \
gstreamer1.0-plugins-base-apps \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-pulseaudio \
&& curl -sS https://deb.nodesource.com/gpgkey/nodesource.gpg.key \
| apt-key add - \
&& echo "deb https://deb.nodesource.com/node_12.x buster main" \
> /etc/apt/sources.list.d/nodesource.list \
\
&& apt-get update \
&& apt-get install -y --no-install-recommends \
nodejs \
\
# Install genie-client
&& apt-get install -y --no-install-recommends \
build-essential \
pkg-config \
ninja-build \
git \
meson \
python-dev \
gettext \
libgstreamer1.0-dev \
libasound2-dev \
libglib2.0-dev \
libjson-glib-dev \
libsoup2.4-dev \
libevdev-dev \
libpulse-dev \
libspeex-dev \
libspeexdsp-dev \
libwebrtc-audio-processing-dev \
&& git clone \
"https://github.com/stanford-oval/genie-client" \
&& cd genie-client \
&& git checkout ${GENIE_CLIENT_VERSION} \
&& git submodule init && git submodule update --recursive \
&& ./scripts/get-assets.sh ${BUILD_ARCH} \
&& meson build \
&& ninja -C build \
&& ninja -C build install \
\
# Install genie-server
&& mkdir /opt/genie-server \
&& cd /opt/genie-server \
&& apt-get install -y --no-install-recommends \
&& git clone -b ${GENIE_SERVER_VERSION} --depth 1 https://github.com/stanford-oval/genie-server /opt/genie-server \
&& npm config set unsafe-perm \
&& npm ci \
&& apt-get purge -y --auto-remove \
build-essential \
pkg-config \
git \
ninja-build \
meson \
python-dev \
libpulse-dev \
libgstreamer1.0-dev \
libasound2-dev \
libglib2.0-dev \
libjson-glib-dev \
libsoup2.4-dev \
libevdev-dev \
libspeex-dev \
libspeexdsp-dev \
libwebrtc-audio-processing-dev \
&& rm -rf \
/opt/genie-server/.[!.]* \
/root/.cache \
/root/.config \
/tmp/.[!.]* \
/tmp/* \
/usr/local/share/.cache \
/usr/local/share/.config \
/var/lib/apt/lists/* \
/usr/lib/nginx \
/var/www \
/usr/src/*
WORKDIR /
COPY rootfs /