master
docker 169 lines 5.93 KB
Raw
1 # THIS FILE WAS AUTO-GENERATED
2 #
3 # $ lcitool dockerfile --layers all ubuntu-2404 qemu
4 #
5 # https://gitlab.com/libvirt/libvirt-ci
6
7 FROM docker.io/library/ubuntu:24.04
8
9 RUN export DEBIAN_FRONTEND=noninteractive && \
10 apt-get update && \
11 apt-get install -y eatmydata && \
12 eatmydata apt-get dist-upgrade -y && \
13 eatmydata apt-get install --no-install-recommends -y \
14 bash \
15 bc \
16 bindgen \
17 bison \
18 bsdextrautils \
19 bzip2 \
20 ca-certificates \
21 ccache \
22 clang \
23 coreutils \
24 dbus \
25 debianutils \
26 diffutils \
27 exuberant-ctags \
28 findutils \
29 flex \
30 gcc \
31 gcovr \
32 gettext \
33 git \
34 hostname \
35 libaio-dev \
36 libasan8 \
37 libasound2-dev \
38 libattr1-dev \
39 libbpf-dev \
40 libbrlapi-dev \
41 libbz2-dev \
42 libc6-dev \
43 libcacard-dev \
44 libcap-ng-dev \
45 libcapstone-dev \
46 libcbor-dev \
47 libclang-rt-dev \
48 libcmocka-dev \
49 libcurl4-gnutls-dev \
50 libdaxctl-dev \
51 libdrm-dev \
52 libepoxy-dev \
53 libfdt-dev \
54 libffi-dev \
55 libfuse3-dev \
56 libgbm-dev \
57 libgcrypt20-dev \
58 libglib2.0-dev \
59 libgnutls28-dev \
60 libgtk-3-dev \
61 libgtk-vnc-2.0-dev \
62 libibverbs-dev \
63 libiscsi-dev \
64 libjemalloc-dev \
65 libjpeg-turbo8-dev \
66 libjson-c-dev \
67 liblttng-ust-dev \
68 liblzo2-dev \
69 libncursesw5-dev \
70 libnfs-dev \
71 libnuma-dev \
72 libpam0g-dev \
73 libpcre2-dev \
74 libpipewire-0.3-dev \
75 libpixman-1-dev \
76 libpmem-dev \
77 libpng-dev \
78 libpulse-dev \
79 librbd-dev \
80 librdmacm-dev \
81 libsasl2-dev \
82 libsdl2-dev \
83 libsdl2-image-dev \
84 libseccomp-dev \
85 libselinux1-dev \
86 libslirp-dev \
87 libsnappy-dev \
88 libsndio-dev \
89 libspice-protocol-dev \
90 libspice-server-dev \
91 libssh-dev \
92 libstd-rust-dev \
93 libsystemd-dev \
94 libtasn1-6-dev \
95 libubsan1 \
96 libudev-dev \
97 liburing-dev \
98 libusb-1.0-0-dev \
99 libusbredirhost-dev \
100 libvdeplug-dev \
101 libvirglrenderer-dev \
102 libvte-2.91-dev \
103 libxdp-dev \
104 libxen-dev \
105 libzstd-dev \
106 llvm \
107 locales \
108 make \
109 mtools \
110 multipath-tools \
111 nettle-dev \
112 ninja-build \
113 openssh-client \
114 pkgconf \
115 python3 \
116 python3-pip \
117 python3-setuptools \
118 python3-sphinx \
119 python3-sphinx-rtd-theme \
120 python3-tomli \
121 python3-venv \
122 python3-wheel \
123 rpm2cpio \
124 rustc-1.83 \
125 sed \
126 socat \
127 sparse \
128 swtpm \
129 systemtap-sdt-dev \
130 tar \
131 tesseract-ocr \
132 tesseract-ocr-eng \
133 vulkan-tools \
134 xorriso \
135 zlib1g-dev \
136 zstd && \
137 eatmydata apt-get autoremove -y && \
138 eatmydata apt-get autoclean -y && \
139 sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
140 dpkg-reconfigure locales && \
141 rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
142 dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
143 mkdir -p /usr/libexec/ccache-wrappers && \
144 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
145 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
146 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
147
148 RUN /usr/bin/pip3 install meson==1.12.0
149
150 ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
151 ENV LANG="en_US.UTF-8"
152 ENV MAKE="/usr/bin/make"
153 ENV NINJA="/usr/bin/ninja"
154 ENV PYTHON="/usr/bin/python3"
155 ENV RUSTC=/usr/bin/rustc-1.83
156 ENV RUSTDOC=/usr/bin/rustdoc-1.83
157 ENV CARGO_HOME=/usr/local/cargo
158 ENV PATH=$CARGO_HOME/bin:$PATH
159 RUN apt update && \
160 DEBIAN_FRONTEND=noninteractive eatmydata \
161 apt install -y --no-install-recommends cargo
162 RUN cargo install --locked bindgen-cli
163 # As a final step configure the user (if env is defined)
164 ARG USER
165 ARG UID
166 RUN if [ "${USER}" ]; then \
167 id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
168
169 ENV ENABLE_RUST=1