Files
kubesphere/build/Dockerfile

44 lines
1.5 KiB
Docker

FROM ubuntu:18.04 as binarydownloader
ARG HELM_VERSION=v3.5.2
ARG KUSTOMIZE_VERSION=v4.0.5
ARG KUBE_VERSION=v1.16.4
ARG ETCD_VERSION=v3.3.11
RUN apt update && apt -y install wget curl
ADD ./hack /opt/hack/
RUN bash /opt/hack/build-scripts/get-helm.sh
RUN bash /opt/hack/build-scripts/get-kustomize.sh
RUN bash /opt/hack/build-scripts/get-etcd.sh
RUN bash /opt/hack/build-scripts/get-kubernetes.sh
FROM golang:1.13 as builder
ADD . /opt/kubesphere/
WORKDIR /opt/kubesphere/
RUN apt update && apt -y install sudo
RUN bash /opt/kubesphere/hack/install_kubebuilder.sh
COPY --from=binarydownloader /usr/local/kubernetes/server/bin/kube-apiserver /usr/local/kubebuilder/bin/kube-apiserver
COPY --from=binarydownloader /usr/local/kubernetes/server/bin/kubectl /usr/local/kubebuilder/bin/kubectl
COPY --from=binarydownloader /usr/local/bin/etcd /usr/local/kubebuilder/bin/etcd
RUN bash -c "source /opt/kubesphere/hack/init_env.sh && make ks-apiserver"
RUN bash -c "source /opt/kubesphere/hack/init_env.sh && make ks-controller-manager"
FROM alpine:3.11 as ks-apiserver
RUN apk add --no-cache ca-certificates
COPY --from=binarydownloader /usr/bin/helm /usr/bin/helm
COPY --from=builder /opt/kubesphere/bin/cmd/ks-apiserver /usr/local/bin/
EXPOSE 9090
CMD ["sh"]
FROM alpine:3.11 as ks-controller-manager
RUN apk add --no-cache ca-certificates
COPY --from=binarydownloader /usr/bin/helm /usr/bin/helm
COPY --from=binarydownloader /usr/bin/kustomize /usr/bin/kustomize
COPY --from=builder /opt/kubesphere/bin/cmd/controller-manager /usr/local/bin/
EXPOSE 8443 8080
CMD ["sh"]