forked from kubevirt/kubevirt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
134 lines (112 loc) · 4.49 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
130
131
132
133
134
FROM quay.io/centos/centos:stream9
ARG SONOBUOY_ARCH
ARG BAZEL_ARCH
ENV BAZEL_VERSION=5.3.1
ENV GIMME_GO_VERSION=1.19.2
ENV GRADLE_VERSION=6.6
ENV OPERATOR_COURIER_VERSION=2.1.11
ENV SONOBUOY_VERSION=0.56.9
ENV GOLANGCI_LINT_VERSION=v1.46.2
ENV KUBEVIRT_CREATE_BAZELRCS=false
# Install packages
RUN dnf install -y dnf-plugins-core && \
dnf config-manager --enable crb && \
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 \
python3 \
python3-devel \
python3-pip \
python3-setuptools \
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 install -v golang.org/x/tools/cmd/goimports@d5fe738 && \
go install -v mvdan.cc/sh/v3/cmd/[email protected] && \
go install -v k8s.io/code-generator/cmd/[email protected] && \
go install -v k8s.io/code-generator/cmd/[email protected] && \
go install -v k8s.io/kube-openapi/cmd/openapi-gen@30be4d1 && \
go install -v github.com/golang/protobuf/protoc-gen-go@1643683 && \
go install -v k8s.io/code-generator/cmd/[email protected] && \
go install -v github.com/securego/gosec/v2/cmd/gosec@0ce48a5 && \
go install -v sigs.k8s.io/controller-tools/cmd/[email protected] && \
go clean -cache -modcache
RUN set -x && \
source /etc/profile.d/gimme.sh && \
go install -v github.com/mattn/goveralls@21feffdfd && \
go install -v github.com/rmohr/mock/[email protected] && \
go install -v github.com/rmohr/go-swagger-utils/[email protected] && \
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 set -x && \
source /etc/profile.d/gimme.sh && \
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$(go env GOROOT)"/bin $GOLANGCI_LINT_VERSION
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" ]