forked from kubevirt/kubevirt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
129 lines (108 loc) · 4.25 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
FROM quay.io/centos/centos:stream8
ARG SONOBUOY_ARCH
ARG BAZEL_ARCH
ENV BAZEL_VERSION=4.2.1
ENV GIMME_GO_VERSION=1.17.8
ENV GRADLE_VERSION=6.6
ENV OPERATOR_COURIER_VERSION=2.1.11
ENV SONOBUOY_VERSION=0.19.0
ENV KUBEVIRT_CREATE_BAZELRCS=false
# Install packages
RUN dnf install -y dnf-plugins-core && \
dnf config-manager --enable powertools && \
dnf install -y --setopt=install_weak_deps=False \
java-11-openjdk-devel \
libvirt-devel \
cpio \
patch \
make \
git \
sudo \
gcc \
gcc-c++ \
glibc-static \
libstdc++-static \
glibc-devel \
findutils \
rsync-daemon \
rsync \
qemu-img \
protobuf-compiler \
python38 \
python38-devel \
python38-pip \
redhat-rpm-config \
jq \
wget \
rubygems \
diffutils && \
dnf clean -y all
# Avoids the need to install sssd-client by disabling lookups
COPY nsswitch.conf /etc/nsswitch.conf
# Necessary for generation of HTML-formatted API docs (.adoc)
RUN gem install asciidoctor
# Necessary for Bazel to find Python inside the container
#
# https://github.com/bazelbuild/bazel/issues/8665
# https://github.com/bazelbuild/bazel/issues/11554
RUN ln -s /usr/bin/python3 /usr/bin/python
# install gradle (required for swagger)
RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip && \
mkdir /opt/gradle && \
unzip -d /opt/gradle gradle-${GRADLE_VERSION}-bin.zip && \
rm gradle-${GRADLE_VERSION}-bin.zip
ENV PATH=$PATH:/opt/gradle/gradle-${GRADLE_VERSION}/bin \
JAVA_HOME=/usr/lib/jvm/java-11
# reference to master is for an external repo and can't yet be changed
RUN mkdir -p /gimme && curl -sL \
https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | \
HOME=/gimme bash >> /etc/profile.d/gimme.sh
ENV GOPATH="/go" GOBIN="/usr/bin" GO111MODULE="on"
# Install persistent go packages
RUN set -x && \
mkdir -p /go && \
source /etc/profile.d/gimme.sh && \
go get -v golang.org/x/tools/cmd/goimports@d5fe738 && \
go get -v mvdan.cc/sh/v3/cmd/shfmt@v3.1.1 && \
go get -v k8s.io/code-generator/cmd/deepcopy-gen@v0.20.2 && \
go get -v k8s.io/code-generator/cmd/defaulter-gen@v0.20.2 && \
go get -v k8s.io/kube-openapi/cmd/openapi-gen@30be4d1 && \
go get -v github.com/golang/protobuf/protoc-gen-go@1643683 && \
go get -v k8s.io/code-generator/cmd/client-gen@v0.20.2 && \
go get -v github.com/securego/gosec/v2/cmd/gosec@0ce48a5 && \
go get -v sigs.k8s.io/controller-tools/cmd/controller-gen@v0.4.0 && \
go clean -cache -modcache
RUN set -x && \
source /etc/profile.d/gimme.sh && \
go get -v -u github.com/mattn/goveralls@21feffdfd && \
go get -v -u github.com/golang/mock/gomock@v1.4.3 && \
go get -v -u github.com/rmohr/mock/mockgen@v0.0.0-20170327080805-5980f5d9a70d && \
go get -v -u github.com/rmohr/go-swagger-utils/swagger-doc@v0.0.0-20181110145135-878f7deb1d17 && \
go clean -cache -modcache
RUN set -x && \
source /etc/profile.d/gimme.sh && \
git clone https://github.com/kubernetes/test-infra.git && \
cd /test-infra && \
git checkout f2693aba912dd40c974304caca999d45ee8dce33 && \
cd /test-infra/robots/pr-creator && \
go install && \
cd /test-infra/robots/issue-creator && \
go install && \
cd /test-infra/robots/pr-labeler && \
go install && \
go clean -cache -modcache -r && \
rm -rf /test-infra && \
rm -rf /go && mkdir /go
RUN pip3 install --upgrade operator-courier==${OPERATOR_COURIER_VERSION}
RUN set -x && \
wget https://github.com/vmware-tanzu/sonobuoy/releases/download/v${SONOBUOY_VERSION}/sonobuoy_${SONOBUOY_VERSION}_linux_${SONOBUOY_ARCH}.tar.gz && \
tar xvf sonobuoy_${SONOBUOY_VERSION}_linux_${SONOBUOY_ARCH}.tar.gz && \
chmod +x sonobuoy && \
mv sonobuoy /usr/bin && \
rm sonobuoy_${SONOBUOY_VERSION}_linux_${SONOBUOY_ARCH}.tar.gz
COPY rsyncd.conf /etc/rsyncd.conf
COPY entrypoint.sh /entrypoint.sh
COPY create_bazel_cache_rcs.sh /create_bazel_cache_rcs.sh
RUN curl -L -o /usr/bin/bazel https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-linux-${BAZEL_ARCH} && \
chmod u+x /usr/bin/bazel
ENTRYPOINT [ "/entrypoint.sh" ]