mirror of
https://github.com/1Panel-dev/KubePi.git
synced 2025-09-28 20:22:19 +08:00
98 lines
3.1 KiB
Docker
98 lines
3.1 KiB
Docker
FROM node:20.2.0 as stage-web-build
|
|
ARG NPM_REGISTRY="https://registry.npmmirror.com"
|
|
ENV NPM_REGISTY=$NPM_REGISTRY
|
|
|
|
LABEL stage=stage-web-build
|
|
RUN set -ex \
|
|
&& npm config set registry ${NPM_REGISTRY}
|
|
|
|
WORKDIR /build/kubepi/web
|
|
|
|
COPY . .
|
|
|
|
RUN make build_web
|
|
|
|
RUN rm -fr web
|
|
|
|
FROM golang:1.19 as stage-bin-build
|
|
|
|
ENV GOPROXY="https://goproxy.cn,direct"
|
|
|
|
ENV CGO_ENABLED=0
|
|
|
|
ENV GO111MODULE=on
|
|
|
|
LABEL stage=stage-bin-build
|
|
|
|
WORKDIR /build/kubepi/bin
|
|
|
|
COPY --from=stage-web-build /build/kubepi/web .
|
|
|
|
RUN go mod download
|
|
|
|
RUN make build_gotty
|
|
RUN make build_bin
|
|
|
|
FROM alpine:3.16
|
|
|
|
WORKDIR /
|
|
|
|
COPY --from=stage-bin-build /build/kubepi/bin/dist/usr /usr
|
|
|
|
RUN ARCH=$(uname -m) \
|
|
&& case $ARCH in aarch64) ARCH="arm64";; x86_64) ARCH="amd64";; esac \
|
|
&& echo "ARCH: " $ARCH \
|
|
&& apk add --update --no-cache bash bash-completion curl wget openssl iputils busybox-extras vim tini \
|
|
&& sed -i "s/nobody:\//nobody:\/nonexistent/g" /etc/passwd \
|
|
&& curl -sLf https://kubeoperator.oss-cn-beijing.aliyuncs.com/kubepi/kubectl/v1.22.1/${ARCH}/kubectl > /usr/bin/kubectl \
|
|
&& chmod +x /usr/bin/kubectl \
|
|
&& cd /opt/ \
|
|
&& wget https://kubeoperator.oss-cn-beijing.aliyuncs.com/kubepi/kubectl-aliases/kubectl-aliases.tar.gz \
|
|
&& tar zxvf kubectl-aliases.tar.gz \
|
|
&& rm -rf kubectl-aliases.tar.gz \
|
|
&& chmod -R 755 kubectl-aliases \
|
|
&& wget https://kubeoperator.oss-cn-beijing.aliyuncs.com/kubepi/fzf/0.21.0/fzf.tar.gz \
|
|
&& tar zxvf fzf.tar.gz \
|
|
&& rm -rf fzf.tar.gz \
|
|
&& chmod -R 755 fzf \
|
|
&& yes | fzf/install \
|
|
&& ln -s fzf/bin/fzf /usr/local/bin/fzf \
|
|
&& cd /tmp/ \
|
|
&& wget https://kubeoperator.oss-cn-beijing.aliyuncs.com/kubepi/k9s/v0.24.14/k9s_Linux_${ARCH}.tar.gz \
|
|
&& tar -xvf k9s_Linux_${ARCH}.tar.gz \
|
|
&& chmod +x k9s \
|
|
&& mv k9s /usr/bin \
|
|
&& KUBECTX_VERSION=v0.9.4 \
|
|
&& wget https://kubeoperator.oss-cn-beijing.aliyuncs.com/kubepi/kubens/${KUBECTX_VERSION}/kubens_${KUBECTX_VERSION}_linux_${ARCH}.tar.gz \
|
|
&& tar -xvf kubens_${KUBECTX_VERSION}_linux_${ARCH}.tar.gz \
|
|
&& chmod +x kubens \
|
|
&& mv kubens /usr/bin \
|
|
&& wget https://kubeoperator.oss-cn-beijing.aliyuncs.com/kubepi/kubectx/${KUBECTX_VERSION}/kubectx_${KUBECTX_VERSION}_linux_${ARCH}.tar.gz \
|
|
&& tar -xvf kubectx_${KUBECTX_VERSION}_linux_${ARCH}.tar.gz \
|
|
&& chmod +x kubectx \
|
|
&& mv kubectx /usr/bin \
|
|
&& HELM_VERSION=v3.10.2 \
|
|
&& wget http://kubeoperator.oss-cn-beijing.aliyuncs.com/helm/${HELM_VERSION}/helm-${HELM_VERSION}-linux-${ARCH}.tar.gz \
|
|
&& tar -xvf helm-${HELM_VERSION}-linux-${ARCH}.tar.gz \
|
|
&& mv linux-${ARCH}/helm /usr/local/bin \
|
|
&& chmod +x /usr/local/bin/helm \
|
|
&& chmod +x /usr/local/bin/gotty \
|
|
&& chmod 555 /bin/busybox \
|
|
&& rm -rf /tmp/* /var/tmp/* /var/cache/apk/* \
|
|
&& chmod -R 755 /tmp \
|
|
&& mkdir -p /opt/webkubectl
|
|
|
|
RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
|
&& echo "Asia/Shanghai" > /etc/timezone \
|
|
&& apk del tzdata
|
|
|
|
COPY conf/app.yml /etc/kubepi/app.yml
|
|
|
|
COPY vimrc.local /etc/vim
|
|
|
|
EXPOSE 80
|
|
|
|
USER root
|
|
|
|
ENTRYPOINT ["tini", "-g", "--"]
|
|
CMD ["kubepi-server"] |