@@ -6,34 +6,42 @@ SHELL ["/bin/bash", "-c"]
6
6
# Common tools and dependencies, GCC, ASDF
7
7
# Note: We setup locales using the snippet from `ubuntu` image readme.
8
8
RUN apt-get update \
9
- && apt-get install -y software-properties-common \
10
- && add-apt-repository ppa:ubuntu-toolchain-r/test -y \
11
- && apt-get update \
12
- && apt-get install -y \
13
- autoconf \
14
- automake \
15
- build-essential \
16
- clang-format \
17
- curl \
18
- gcc-9 \
19
- git \
20
- libffi-dev \
21
- libglib2.0-dev \
22
- libncurses-dev \
23
- libreadline-dev \
24
- libssl-dev \
25
- libtool \
26
- libxslt-dev \
27
- libyaml-dev \
28
- locales \
29
- meson \
30
- ninja-build \
31
- unixodbc-dev \
32
- unzip \
33
- wget \
34
- && rm -rf /var/lib/apt/lists/* \
35
- && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 \
36
- && git clone https://github.com/asdf-vm/asdf.git /root/.asdf -b v0.8.0
9
+ && apt-get install -y software-properties-common \
10
+ && add-apt-repository ppa:ubuntu-toolchain-r/test -y \
11
+ && apt-get update \
12
+ && apt-get install -y \
13
+ autoconf \
14
+ automake \
15
+ build-essential \
16
+ cmake \
17
+ clang-format \
18
+ curl \
19
+ gcc-9 \
20
+ git \
21
+ git-core \
22
+ libass-dev \
23
+ libffi-dev \
24
+ libfreetype6-dev \
25
+ libglib2.0-dev \
26
+ libgnutls28-dev \
27
+ libncurses-dev \
28
+ libreadline-dev \
29
+ libssl-dev \
30
+ libtool \
31
+ libxslt-dev \
32
+ libyaml-dev \
33
+ locales \
34
+ meson \
35
+ ninja-build \
36
+ unixodbc-dev \
37
+ texinfo \
38
+ unzip \
39
+ wget \
40
+ yasm \
41
+ zlib1g-dev \
42
+ && rm -rf /var/lib/apt/lists/* \
43
+ && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 \
44
+ && git clone https://github.com/asdf-vm/asdf.git /root/.asdf -b v0.8.0
37
45
38
46
ENV LANG en_US.utf8
39
47
@@ -46,89 +54,115 @@ ENV PATH /root/.asdf/bin:/root/.asdf/shims:$PATH
46
54
47
55
# Erlang
48
56
RUN apt-get update \
49
- # This invocation causes `keyboard-configuration` package to be installed,
50
- # which seems to assume interactivity during Docker build. Setting DEBIAN_FRONTEND
51
- # helps for this issue, although this is not recommended in general.
52
- && DEBIAN_FRONTEND=noninteractive apt-get install -y \
53
- autoconf \
54
- build-essential \
55
- fop \
56
- libgl1-mesa-dev \
57
- libglu1-mesa-dev \
58
- libncurses5-dev \
59
- libpng-dev \
60
- libssh-dev \
61
- libwxgtk3.0-gtk3-dev \
62
- m4 \
63
- unixodbc-dev \
64
- xsltproc \
65
- && rm -rf /var/lib/apt/lists/* \
66
- && asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git \
67
- && asdf install erlang 26.0.2 \
68
- && asdf global erlang 26.0.2 \
69
- && rm -rf /tmp/*
57
+ # This invocation causes `keyboard-configuration` package to be installed,
58
+ # which seems to assume interactivity during Docker build. Setting DEBIAN_FRONTEND
59
+ # helps for this issue, although this is not recommended in general.
60
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
61
+ autoconf \
62
+ build-essential \
63
+ fop \
64
+ libgl1-mesa-dev \
65
+ libglu1-mesa-dev \
66
+ libncurses5-dev \
67
+ libpng-dev \
68
+ libssh-dev \
69
+ libwxgtk3.0-gtk3-dev \
70
+ m4 \
71
+ unixodbc-dev \
72
+ xsltproc \
73
+ && rm -rf /var/lib/apt/lists/* \
74
+ && asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git \
75
+ && asdf install erlang 26.0.2 \
76
+ && asdf global erlang 26.0.2 \
77
+ && rm -rf /tmp/*
70
78
71
79
# Elixir
72
80
RUN asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git \
73
- && asdf install elixir 1.15.5-otp-26 \
74
- && asdf global elixir 1.15.5-otp-26 \
75
- && mix local.hex --force \
76
- && mix local.rebar --force \
77
- && rm -rf /tmp/*
78
-
81
+ && asdf install elixir 1.15.5-otp-26 \
82
+ && asdf global elixir 1.15.5-otp-26 \
83
+ && mix local.hex --force \
84
+ && mix local.rebar --force \
85
+ && rm -rf /tmp/*
86
+
79
87
# Node.js
80
88
RUN asdf plugin-add nodejs \
81
- && asdf install nodejs 18.17.1 \
82
- && asdf global nodejs 18.17.1 \
83
- && rm -rf /tmp/*
89
+ && asdf install nodejs 18.17.1 \
90
+ && asdf global nodejs 18.17.1 \
91
+ && rm -rf /tmp/*
84
92
85
93
# Rust
86
94
RUN asdf plugin-add rust \
87
- && asdf install rust 1.70.0 \
88
- && asdf global rust 1.70.0 \
89
- && rm -rf /tmp/*
95
+ && asdf install rust 1.70.0 \
96
+ && asdf global rust 1.70.0 \
97
+ && rm -rf /tmp/*
90
98
91
99
# Multimedia libraries
92
100
RUN apt-get update \
93
- && apt-get install -y \
94
- ffmpeg \
95
- libavcodec-dev \
96
- libavdevice-dev \
97
- libavfilter-dev \
98
- libavformat-dev \
99
- libavformat-dev \
100
- libavutil-dev \
101
- libflac-dev \
102
- libmad0-dev \
103
- libopus-dev \
104
- libpostproc-dev \
105
- libsdl2-dev \
106
- libswresample-dev \
107
- libswscale-dev \
108
- portaudio19-dev \
109
- libsrtp2-dev \
110
- libmp3lame-dev \
111
- && rm -rf /var/lib/apt/lists/* \
112
- # fdk-aac
113
- && cd /tmp/ \
114
- && wget https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.0.tar.gz \
115
- && tar -xf fdk-aac-2.0.0.tar.gz && cd fdk-aac-2.0.0 \
116
- && ./configure --prefix=/usr --disable-static \
117
- && make && make install \
118
- && cd / \
119
- && rm -rf /tmp/*
101
+ && apt-get install -y \
102
+ libflac-dev \
103
+ libmad0-dev \
104
+ libopus-dev \
105
+ libsdl2-dev \
106
+ portaudio19-dev \
107
+ libsrtp2-dev \
108
+ libmp3lame-dev \
109
+ libva-dev \
110
+ libvdpau-dev \
111
+ libvorbis-dev \
112
+ libxcb1-dev \
113
+ libxcb-shm0-dev \
114
+ libxcb-xfixes0-dev \
115
+ libx264-dev \
116
+ libfreetype-dev \
117
+ libx265-dev \
118
+ && rm -rf /var/lib/apt/lists/* \
119
+ # fdk-aac
120
+ && cd /tmp/ \
121
+ && wget https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.0.tar.gz \
122
+ && tar -xf fdk-aac-2.0.0.tar.gz && cd fdk-aac-2.0.0 \
123
+ && ./configure --prefix=/usr --disable-static \
124
+ && make && make install \
125
+ && cd / \
126
+ && rm -rf /tmp/*
127
+
128
+ # FFmpeg
129
+ RUN asdf plugin add ffmpeg \
130
+ && export ASDF_FFMPEG_OPTIONS_EXTRA="--disable-debug \
131
+ --disable-doc \
132
+ --enable-ffplay \
133
+ --enable-fontconfig \
134
+ --enable-gpl \
135
+ --enable-libass \
136
+ --enable-libfdk_aac \
137
+ --enable-libmp3lame \
138
+ --enable-libopus \
139
+ --enable-libx264 \
140
+ --enable-libx265 \
141
+ --enable-libfreetype \
142
+ --enable-libharfbuzz \
143
+ --enable-nonfree \
144
+ --enable-openssl \
145
+ --enable-postproc \
146
+ --enable-shared \
147
+ --enable-small \
148
+ --enable-version3 \
149
+ --extra-libs=-ldl \
150
+ --extra-libs=-lpthread" \
151
+ && asdf install ffmpeg 6.1.1 \
152
+ && asdf global ffmpeg 6.1.1 \
153
+ && cp -r /root/.asdf/installs/ffmpeg/6.1.1/lib/* /usr/lib
120
154
121
155
# OpenGL dependencies - based on https://github.com/thewtex/docker-opengl
122
156
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
123
- libgl1-mesa-dri \
124
- openbox \
125
- supervisor \
126
- x11-xserver-utils \
127
- xinit \
128
- xserver-xorg-video-dummy \
129
- python3-pip \
130
- && pip install git+https://github.com/coderanger/supervisor-stdout \
131
- && apt-get -y clean
157
+ libgl1-mesa-dri \
158
+ openbox \
159
+ supervisor \
160
+ x11-xserver-utils \
161
+ xinit \
162
+ xserver-xorg-video-dummy \
163
+ python3-pip \
164
+ && pip install git+https://github.com/coderanger/supervisor-stdout \
165
+ && apt-get -y clean
132
166
133
167
COPY etc /etc
134
168
COPY /etc/skel/.xinitrc /root/
0 commit comments