forked from kubevirt/kubevirt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
139 lines (116 loc) · 4.82 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
135
136
137
138
139
FROM quay.io/centos/centos:stream9
ARG ARCH
ARG SONOBUOY_ARCH
ARG BAZEL_ARCH
ENV BAZEL_VERSION=5.4.1
ENV GIMME_GO_VERSION=1.22.8
ENV OPERATOR_COURIER_VERSION=2.1.11
ENV SONOBUOY_VERSION=0.56.9
ENV GOLANGCI_LINT_VERSION=v1.60.1
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 \
skopeo && \
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
# Generates Asciidoc files from swagger.json
ADD https://storage.googleapis.com/builddeps/swagger2markup-cli-1.3.3.jar /opt/swagger2markup-cli/swagger2markup-cli-1.3.3.jar
# 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
ENV 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/code-generator/cmd/[email protected] && \
go install -v k8s.io/kube-openapi/cmd/openapi-gen@f7e401e && \
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 install -v github.com/kubevirt/monitoring/monitoringlinter/cmd/monitoringlinter@e2be790 && \
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 && \
go install -v mvdan.cc/[email protected] && \
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 if test "${ARCH}" != "s390x"; then \
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; \
fi
# Add /root/go/src/kubevirt.io/kubevirt and mark it as a safe directory for git
RUN mkdir -p /root/go/src/kubevirt.io/kubevirt && git config --global --add safe.directory /root/go/src/kubevirt.io/kubevirt
ENTRYPOINT [ "/entrypoint.sh" ]