blob: e07e60d5c89bf99c33b80635a4fe9c9a41d3f16d [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 \
35 nc
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020036
37# Workaround for a binutils bugs in F30, which generates invalid ELF binaries
38# when linking statically with musl.
39RUN dnf -y install fedora-repos-rawhide && \
40 dnf -y --disablerepo=* --enablerepo=rawhide --releasever=32 upgrade binutils
41
42# Install Bazel binary
43RUN curl -o /usr/local/bin/bazel \
Leopold Schabelf1d34d32020-01-07 14:15:44 +010044 https://releases.bazel.build/2.0.0/release/bazel-2.0.0-linux-x86_64 && \
45 echo '4df79462c6c3ecdeeee7af99fc269b52ab1aa4828ef3bc359c1837d3fafeeee7 /usr/local/bin/bazel' | sha256sum --check && \
Hendrik Hofstadt0d7c91e2019-10-23 21:44:47 +020046 chmod +x /usr/local/bin/bazel
47
48# Use a shared Go module cache for gazelle
49# https://github.com/bazelbuild/bazel-gazelle/pull/535
50ENV GO_REPOSITORY_USE_HOST_CACHE=1
51
52# --userns=keep-id uses the workdir as $HOME otherwise
53RUN mkdir /user
54ENV HOME=/user
55
56WORKDIR /work