-
Notifications
You must be signed in to change notification settings - Fork 10
/
Dockerfile
140 lines (103 loc) · 3.15 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
ARG BASE_IMAGE
FROM ${BASE_IMAGE} AS BASE
# BUILD_MODE: [ std, sf, r2, bt ]
ARG BUILD_MODE
# BINARY_MODE: [ "full", "pulse", "alsa", "alsa-bt" ]
ARG BINARY_MODE
ARG FORCE_ARCH
ARG USE_APT_PROXY
RUN mkdir -p /app/conf
COPY app/conf/01-apt-proxy /app/conf/
RUN echo "USE_APT_PROXY=["${USE_APT_PROXY}"]"
RUN if [ "${USE_APT_PROXY}" = "Y" ]; then \
echo "Builind using apt proxy"; \
cp /app/conf/01-apt-proxy /etc/apt/apt.conf.d/01-apt-proxy; \
else \
echo "Building without apt proxy"; \
fi
RUN mkdir -p /app/bin
# copy installer files
RUN mkdir -p /app/install
COPY install/install-dep.sh /app/install/
COPY install/installer.sh /app/install/
COPY install/remove-dep.sh /app/install/
RUN chmod u+x /app/install/*.sh
RUN /app/install/install-dep.sh
WORKDIR /app/install
# execute installation
RUN /app/install/installer.sh
RUN /app/install/remove-dep.sh
RUN rm /app/install/install-dep.sh
RUN rm /app/install/installer.sh
RUN rm /app/install/remove-dep.sh
# cleanup apt proxy config
RUN if [ "${USE_APT_PROXY}" = "Y" ]; then \
rm /etc/apt/apt.conf.d/01-apt-proxy; \
fi
# cleanup apt cache
RUN rm -rf /var/lib/apt/lists/*
# remove scripts
RUN rm -Rf /app/install
FROM scratch
COPY --from=BASE / /
LABEL maintainer="GioF71"
LABEL source="https://github.com/GioF71/squeezelite-docker"
RUN mkdir -p /app
RUN mkdir -p /app/bin
RUN mkdir -p /app/conf
RUN mkdir -p /app/doc
RUN mkdir -p /app/assets
ENV SQUEEZELITE_MODE ""
ENV SQUEEZELITE_AUDIO_DEVICE ""
ENV SQUEEZELITE_MIXER_DEVICE ""
ENV SQUEEZELITE_MAC_ADDRESS ""
ENV DISABLE_MAC_ADDRESS_GENERATION ""
ENV SQUEEZELITE_NAME ""
ENV SQUEEZELITE_MODEL_NAME ""
ENV SQUEEZELITE_TIMEOUT ""
ENV SQUEEZELITE_DELAY ""
ENV STARTUP_DELAY_SEC ""
ENV SQUEEZELITE_SERVER_PORT ""
ENV SQUEEZELITE_RATES ""
ENV SQUEEZELITE_UPSAMPLING ""
ENV PRESET ""
ENV SQUEEZELITE_PARAMS ""
ENV SQUEEZELITE_CODECS ""
ENV SQUEEZELITE_EXCLUDE_CODECS ""
ENV SQUEEZELITE_PRIORITY ""
ENV SQUEEZELITE_STREAM_AND_OUTPUT_BUFFER_SIZE ""
ENV SQUEEZELITE_BUFFER_SIZE ""
ENV SQUEEZELITE_UNMUTE ""
ENV SQUEEZELITE_VOLUME_CONTROL ""
ENV SQUEEZELITE_LINEAR_VOLUME ""
ENV SQUEEZELITE_VISUALIZER ""
ENV SQUEEZELITE_READ_FORMATS_FROM_HEADER ""
ENV SQUEEZELITE_LOG_CATEGORY_ALL ""
ENV SQUEEZELITE_LOG_CATEGORY_SLIMPROTO ""
ENV SQUEEZELITE_LOG_CATEGORY_STREAM ""
ENV SQUEEZELITE_LOG_CATEGORY_DECODE ""
ENV SQUEEZELITE_LOG_CATEGORY_OUTPUT ""
ENV SQUEEZELITE_LOG_CATEGORY_IR ""
ENV DISPLAY_PRESETS ""
ENV PUID ""
ENV PGID ""
ENV AUDIO_GID ""
ENV SELECT_CUSTOM_BINARY_ALSA ""
ENV SELECT_CUSTOM_BINARY_PULSE ""
ENV INSTALL_BLUETOOTH_LIBRARIES ""
COPY app/bin/run-squeezelite.sh /app/bin/
COPY app/bin/run-squeezelite-alsa.sh /app/bin/
COPY app/bin/run-squeezelite-pulse.sh /app/bin/
COPY app/bin/cmd-line-builder.sh /app/bin/
COPY app/bin/logging.sh /app/bin/
COPY app/bin/run-presets.sh /app/bin/
RUN chmod +x /app/bin/*.sh
VOLUME '/app/assets/additional-presets.conf'
VOLUME '/app/assets/binaries'
VOLUME '/config'
COPY README.md /app/doc/
COPY doc/* /app/doc/
COPY app/assets/builtin-presets.conf /app/assets/
COPY app/assets/pulse-client-template.conf /app/assets/pulse-client-template.conf
WORKDIR /app/bin
ENTRYPOINT ["/app/bin/run-squeezelite.sh"]