blob: 7332d90547c4981d34d3fd537a85aa0b4510d01f [file] [log] [blame]
Leopold Schabel822341a2020-02-03 21:51:47 +01001#
2# The CI only rebuilds this Dockerfile if its hash changes.
3# Do not reference any external files, since modifications to them won't trigger a rebuild.
4#
5
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +02006FROM fedora:30
7
8RUN dnf -y upgrade && \
9 dnf -y install \
10 "@Development Tools" \
11 g++ \
12 libuuid-devel \
13 python3 \
14 nasm \
15 acpica-tools \
16 gettext-devel \
17 autoconf \
18 bison \
19 libtool \
20 automake \
21 flex \
22 glibc-static \
23 elfutils-libelf-devel \
24 libblkid-devel \
25 lz4 \
26 bc \
27 hostname \
28 which \
29 swtpm-tools \
30 rsync \
Hendrik Hofstadt3e6018f2019-10-28 21:29:42 +010031 qemu-system-x86-core \
Leopold Schabel383d4bb2019-11-14 22:53:58 +010032 postgresql \
Leopold Schabela4516f92019-12-04 20:27:05 +000033 expect \
34 grpc-cli \
Serge Bazanski7a1b10c2020-02-11 10:02:21 +010035 nc \
36 python-unversioned-command
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020037
38# Workaround for a binutils bugs in F30, which generates invalid ELF binaries
39# when linking statically with musl.
40RUN dnf -y install fedora-repos-rawhide && \
41 dnf -y --disablerepo=* --enablerepo=rawhide --releasever=32 upgrade binutils
42
43# Install Bazel binary
44RUN curl -o /usr/local/bin/bazel \
Leopold Schabelf1d34d32020-01-07 14:15:44 +010045 https://releases.bazel.build/2.0.0/release/bazel-2.0.0-linux-x86_64 && \
46 echo '4df79462c6c3ecdeeee7af99fc269b52ab1aa4828ef3bc359c1837d3fafeeee7 /usr/local/bin/bazel' | sha256sum --check && \
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020047 chmod +x /usr/local/bin/bazel
48
49# Use a shared Go module cache for gazelle
50# https://github.com/bazelbuild/bazel-gazelle/pull/535
51ENV GO_REPOSITORY_USE_HOST_CACHE=1
52
53# --userns=keep-id uses the workdir as $HOME otherwise
54RUN mkdir /user
55ENV HOME=/user
56
57WORKDIR /work