-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathContainerfile
126 lines (106 loc) · 3.11 KB
/
Containerfile
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
FROM debian:bookworm
# SuperCollider version
ENV SC_VERSION=3.13.0
# SC plugins version
ENV SCP_VERSION=3.13.0
# SuperDirt version
ENV SD_VERSION=1.7.4
# Tidal Cycles version
ENV TIDAL_VERSION=1.9.5
# Flok version
ENV FLOK_VERSION=1.3.0
# Install packages
RUN apt update && apt install -y -q \
pipewire-audio \
pipewire-audio-client-libraries \
wget \
unzip \
bzip2 \
cmake \
build-essential \
libasound2-dev \
libavahi-client-dev \
libffi-dev \
libfftw3-dev \
libicu-dev \
libjack-jackd2-dev \
libncurses-dev \
libreadline6-dev \
libsndfile1-dev \
libudev-dev \
libxt-dev \
git \
ghc \
cabal-install \
npm
# Download extra samples
RUN wget -q https://slab.org/tmp/samples-extra.zip -O samples.zip && \
unzip samples.zip -d /
# Download SuperCollider
RUN mkdir -p /tmp/sc && \
cd /tmp/sc && \
wget -q https://github.com/supercollider/supercollider/releases/download/Version-$SC_VERSION/SuperCollider-$SC_VERSION-Source.tar.bz2 -O sc.tar.bz2 && \
tar xvf sc.tar.bz2
# Build SuperCollider
RUN cd /tmp/sc/SuperCollider-$SC_VERSION-Source && \
mkdir -p build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE="Release" \
-DBUILD_TESTING=OFF \
-DSUPERNOVA=ON \
-DNATIVE=OFF \
-DSC_WII=OFF \
-DSC_QT=OFF \
-DSC_ED=OFF \
-DSC_EL=OFF \
-DSC_VIM=OFF \
.. && \
make -j && \
make install
# Download SC plugins
RUN mkdir -p /tmp/scp && \
cd /tmp/scp && \
wget -q https://github.com/supercollider/sc3-plugins/releases/download/Version-$SCP_VERSION/sc3-plugins-$SCP_VERSION-Source.tar.bz2 -O scp.tar.bz2 && \
tar xvf scp.tar.bz2
# Build SC plugins
RUN cd /tmp/scp/sc3-plugins-$SCP_VERSION-Source && \
mkdir -p build && \
cd build && \
cmake -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/ \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DSC_PATH=/tmp/sc/SuperCollider-$SC_VERSION-Source/ \
-DQUARKS=ON \
-DNATIVE=OFF \
-DSUPERNOVA=ON .. && \
make -j && \
make install && \
ldconfig && \
mkdir /usr/local/share/SuperCollider/Extensions && \
mv /usr/local/share/SuperCollider/SC3plugins /usr/local/share/SuperCollider/Extensions/SC3plugins
# Install SuperDirt
RUN echo "Quarks.install(\"SuperDirt\", \"v$SD_VERSION\"); 0.exit;" | sclang
# Install Tidal Cycles
RUN cabal update && cabal install tidal-$TIDAL_VERSION --lib
# Install Tidal Drum Patterns
RUN git clone https://github.com/lvm/tidal-drum-patterns && \
cd tidal-drum-patterns && \
cabal clean && \
cabal configure && \
cabal build && \
cabal install --lib
# Install Flok
RUN npm install -g flok-web@latest flok-repl@"$FLOK_VERSION"
# Install hydra-osc
RUN git clone https://github.com/ojack/hydra-osc.git && \
cd hydra-osc && \
npm install
# SuperCollider startup file
COPY startup.scd /root/.config/SuperCollider/startup.scd
# Tidal Cycles startup file
COPY startup.hs /root/.config/tidal/startup.hs
# hydra-osc startup file
COPY hydra-osc.js /hydra-osc/hydra-osc.js
# Startup script
COPY startup.sh /root/startup.sh
RUN chmod 755 /root/startup.sh
ENTRYPOINT ["/root/startup.sh"]