mirror of
https://gitee.com/rancher/rancher.git
synced 2025-12-06 07:49:17 +08:00
99 lines
4.5 KiB
Docker
99 lines
4.5 KiB
Docker
FROM registry.suse.com/bci/golang:1.24
|
|
|
|
ARG DAPPER_HOST_ARCH
|
|
ENV HOST_ARCH=${DAPPER_HOST_ARCH} ARCH=${DAPPER_HOST_ARCH}
|
|
ENV CATTLE_MACHINE_VERSION=v0.15.0-rancher137
|
|
ENV CATTLE_K3S_VERSION=v1.34.1+k3s1
|
|
ENV HELM_UNITTEST_VERSION=0.3.2
|
|
# k3d ci version
|
|
ENV K3D_VERSION=v5.7.1
|
|
|
|
# kontainer-driver-metadata branch to be set for specific branch other than dev/master, logic at rancher/rancher/pkg/settings/setting.go
|
|
ENV CATTLE_KDM_BRANCH=dev-v2.13
|
|
|
|
RUN zypper -n install gcc binutils glibc-devel-static ca-certificates git-core wget curl unzip tar vim less file xz gzip sed gawk iproute2 iptables jq skopeo
|
|
# use containerd from k3s image, not from bci
|
|
RUN zypper install -y -f docker && rpm -e --nodeps --noscripts containerd
|
|
|
|
# prevents `detected dubious ownership in repository` git error due to uid/gid not matching when using bind mounts
|
|
RUN git config -f /etc/gitconfig --add safe.directory /go/src/github.com/rancher/rancher
|
|
|
|
RUN curl -sLf https://github.com/rancher/machine/releases/download/${CATTLE_MACHINE_VERSION}/rancher-machine-${ARCH}.tar.gz | tar xvzf - -C /usr/bin
|
|
RUN if [ "${ARCH}" != "s390x" ]; then \
|
|
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=${K3D_VERSION} bash; \
|
|
fi
|
|
|
|
ENV GOLANGCI_LINT=v1.59.0
|
|
RUN if [ "${ARCH}" == "amd64" ]; then \
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s "${GOLANGCI_LINT}"; \
|
|
fi
|
|
|
|
# Set up K3s: copy the necessary binaries from the K3s image.
|
|
COPY --from=rancher/k3s:v1.34.1-k3s1 \
|
|
/bin/blkid \
|
|
/bin/bandwidth \
|
|
/bin/cni \
|
|
/bin/conntrack \
|
|
/bin/containerd \
|
|
/bin/containerd-shim-runc-v2 \
|
|
/bin/ethtool \
|
|
/bin/firewall \
|
|
/bin/ip \
|
|
/bin/ipset \
|
|
/bin/k3s \
|
|
/bin/losetup \
|
|
/bin/pigz \
|
|
/bin/runc \
|
|
/bin/which \
|
|
/bin/aux/xtables-legacy-multi \
|
|
/usr/bin/
|
|
|
|
RUN mkdir -p /go/src/github.com/rancher/rancher/.kube
|
|
|
|
RUN ln -s /usr/bin/cni /usr/bin/bridge && \
|
|
ln -s /usr/bin/cni /usr/bin/flannel && \
|
|
ln -s /usr/bin/cni /usr/bin/host-local && \
|
|
ln -s /usr/bin/cni /usr/bin/loopback && \
|
|
ln -s /usr/bin/cni /usr/bin/portmap && \
|
|
ln -s /usr/bin/k3s /usr/bin/crictl && \
|
|
ln -s /usr/bin/k3s /usr/bin/ctr && \
|
|
ln -s /usr/bin/k3s /usr/bin/k3s-agent && \
|
|
ln -s /usr/bin/k3s /usr/bin/k3s-etcd-snapshot && \
|
|
ln -s /usr/bin/k3s /usr/bin/k3s-server && \
|
|
ln -s /usr/bin/k3s /usr/bin/kubectl && \
|
|
ln -s /usr/bin/pigz /usr/bin/unpigz && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/iptables && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/iptables-save && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/iptables-restore && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/iptables-translate && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/ip6tables && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/ip6tables-save && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/ip6tables-restore && \
|
|
ln -s /usr/bin/xtables-legacy-multi /usr/bin/ip6tables-translate && \
|
|
ln -s /etc/rancher/k3s/k3s.yaml /go/src/github.com/rancher/rancher/.kube/k3s.yaml
|
|
|
|
|
|
RUN mkdir /usr/tmp && \
|
|
curl -sLf https://github.com/rancher/k3s/releases/download/${CATTLE_K3S_VERSION}/k3s-images.txt -o /usr/tmp/k3s-images.txt
|
|
|
|
# Python related dependencies for the Integration/Validation tests.
|
|
RUN zypper -n install python311-pip python311-base python311 python311-devel python311-tox libffi-devel libopenssl-devel
|
|
|
|
ENV HELM_HOME=/root/.helm
|
|
ENV DAPPER_ENV="REPO TAG CI DRONE_BUILD_NUMBER DRONE_TAG DRONE_COMMIT DRONE_BRANCH DRONE_BUILD_EVENT GOGET_MODULE GOGET_VERSION RELEASE_ACTION RELEASE_TYPE POSTRELEASE_RANCHER_VERSION POSTRELEASE_RANCHER_STABLE DEBUG SOME_K8S_VERSION V2PROV_TEST_DIST V2PROV_TEST_RUN_REGEX V2PROV_DISTRO_DATA_DIR V2PROV_PROVISIONING_DATA_DIR V2PROV_SYSTEM_AGENT_DATA_DIR"
|
|
ENV DAPPER_SOURCE=/go/src/github.com/rancher/rancher/
|
|
ENV DAPPER_OUTPUT="./bin ./dist ./go.mod ./go.sum ./pkg/apis/go.mod ./pkg/apis/go.sum ./pkg/client/go.mod ./pkg/client/go.sum ./scripts/package ./pkg/settings/setting.go ./package/Dockerfile ./Dockerfile.dapper ./pkg/crds/yaml/generated ./pkg/apis ./pkg/generated ./pkg/client/generated"
|
|
ENV DAPPER_DOCKER_SOCKET=true
|
|
ARG CI
|
|
ARG DRONE_BUILD_NUMBER
|
|
ENV DAPPER_RUN_ARGS="-v ./build:/tmp -v rancher2-go16-pkg-1:/go/pkg -v rancher2-go16-cache-1:/root/.cache/go-build --privileged --label CI=${CI} --label DRONE_BUILD_NUMBER=${DRONE_BUILD_NUMBER}"
|
|
ENV GOCACHE=/root/.cache/go-build
|
|
ENV HOME=${DAPPER_SOURCE}
|
|
|
|
VOLUME /var/lib/rancher
|
|
VOLUME /var/lib/kubelet
|
|
WORKDIR ${DAPPER_SOURCE}
|
|
|
|
ENTRYPOINT ["./scripts/entry"]
|
|
CMD ["ci"]
|