docker-qemu/Dockerfile

145 lines
3.1 KiB
Docker
Raw Normal View History

2017-03-21 21:32:16 +00:00
FROM debian:stretch-slim
2014-09-20 07:00:11 +00:00
2015-06-28 00:44:08 +00:00
RUN apt-get update && apt-get install -y --no-install-recommends \
2016-10-30 15:31:21 +00:00
ovmf \
# qemu-system \
# qemu-utils \
2015-06-28 00:44:08 +00:00
&& rm -rf /var/lib/apt/lists/*
2014-09-20 07:00:11 +00:00
COPY *.patch /qemu-patches/
# https://www.qemu.org/download/#source
ENV QEMU_VERSION 2.11.0
RUN set -eux; \
\
savedAptMark="$(apt-mark showmanual)"; \
\
apt-get update; \
apt-get install -y --no-install-recommends \
ca-certificates \
wget \
xz-utils \
\
patch \
\
gcc \
gnutls-dev \
libaio-dev \
libbz2-dev \
libc-dev \
libcap-dev \
libcap-ng-dev \
libcurl4-gnutls-dev \
libglib2.0-dev \
libiscsi-dev \
libjpeg-dev \
libncursesw5-dev \
libnfs-dev \
libnuma-dev \
libpixman-1-dev \
libpng-dev \
libseccomp-dev \
libssh2-1-dev \
libusb-1.0-0-dev \
libusbredirparser-dev \
libxen-dev \
make \
pkg-config \
python \
xfslibs-dev \
zlib1g-dev \
; \
rm -rf /var/lib/apt/lists/*; \
\
wget -O qemu.tar.xz "https://download.qemu.org/qemu-2.11.0.tar.xz"; \
# TODO verify signature
mkdir /usr/src/qemu; \
tar -xf qemu.tar.xz -C /usr/src/qemu --strip-components=1; \
rm qemu.tar.xz; \
\
cd /usr/src/qemu; \
\
for p in /qemu-patches/*.patch; do \
patch --strip 1 --input "$p"; \
done; \
rm -rf /qemu-patches; \
\
./configure --help; \
./configure \
--target-list=' \
# system targets
# (https://sources.debian.org/src/qemu/stretch/debian/rules/#L57-L61, slimmed)
i386-softmmu x86_64-softmmu aarch64-softmmu arm-softmmu m68k-softmmu \
mips64-softmmu mips64el-softmmu ppc64-softmmu \
sparc64-softmmu s390x-softmmu \
# user targets
# (https://sources.debian.org/src/qemu/stretch/debian/rules/#L81-L86, slimmed)
i386-linux-user x86_64-linux-user aarch64-linux-user arm-linux-user m68k-linux-user \
mips64-linux-user mips64el-linux-user \
ppc64-linux-user ppc64le-linux-user sparc64-linux-user \
s390x-linux-user \
' \
--disable-docs \
--disable-gtk --disable-vte \
--disable-sdl \
--enable-attr \
--enable-bzip2 \
--enable-cap-ng \
--enable-curl \
--enable-curses \
--enable-fdt \
--enable-gnutls \
--enable-kvm \
--enable-libiscsi \
--enable-libnfs \
--enable-libssh2 \
--enable-libusb \
--enable-linux-aio \
--enable-linux-user \
--enable-modules \
--enable-numa \
--enable-seccomp \
--enable-system \
--enable-tools \
--enable-usb-redir \
--enable-vhost-net \
--enable-vhost-user \
--enable-vhost-vsock \
--enable-virtfs \
--enable-vnc \
--enable-vnc-jpeg \
--enable-vnc-png \
--enable-xen \
--enable-xfsctl \
# --enable-rbd \
# --enable-vde \
; \
make -j "$(nproc)"; \
make install; \
\
cd /; \
rm -rf /usr/src/qemu; \
\
libs="$( \
find /usr/local -type f -executable -exec ldd '{}' ';' \
| awk '/=>/ { print $(NF-1) }' \
| sort -u \
| xargs dpkg-query --search \
| cut -d: -f1 \
| sort -u \
)"; \
savedAptMark="$savedAptMark $libs"; \
\
apt-mark auto '.*' > /dev/null; \
[ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \
2018-01-03 18:32:34 +00:00
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
STOPSIGNAL SIGHUP
2014-09-20 07:00:11 +00:00
EXPOSE 22
EXPOSE 5900
COPY start-qemu /usr/local/bin/
CMD ["start-qemu"]