Added Dockerfile and entrypoint

This commit is contained in:
Jakub Al-Khalili 2019-07-08 15:03:23 +02:00
parent 7d716b972f
commit 05a446e4a2
2 changed files with 72 additions and 0 deletions

53
Dockerfile Normal file
View File

@ -0,0 +1,53 @@
FROM docker:18.09
ARG GO_VERSION
ARG OPERATOR_SDK_VERSION
ARG MINIKUBE_VERSION
ARG GOPATH="/go"
RUN mkdir -p /go
# Stage 1 - Install dependencies
RUN apk update && \
apk add --no-cache \
curl \
python \
py-crcmod \
bash \
libc6-compat \
openssh-client \
git \
make \
gcc \
libc-dev \
git
RUN curl -O https://storage.googleapis.com/golang/go$GO_VERSION.linux-amd64.tar.gz && tar -xvf go$GO_VERSION.linux-amd64.tar.gz
# Stage 2 - Install operator-sdk
RUN echo $GOPATH/bin/operator-sdk
RUN curl -L https://github.com/operator-framework/operator-sdk/releases/download/v$OPERATOR_SDK_VERSION/operator-sdk-v$OPERATOR_SDK_VERSION-x86_64-linux-gnu -o $GOPATH/bin/operator-sdk \
&& chmod +x $GOPATH/bin/operator-sdk
RUN curl -Lo minikube https://storage.googleapis.com/minikube/releases/v$MINIKUBE_VERSION/minikube-linux-amd64 \
&& chmod +x minikube \
&& cp minikube /usr/local/bin/ \
&& rm minikube
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl \
&& chmod +x ./kubectl \
&& mv ./kubectl /usr/local/bin/kubectl
RUN export GO111MODULE=auto
RUN mkdir -p $GOPATH/src/github.com/jenkinsci/kubernetes-operator
ADD . $GOPATH/src/github.com/jenkinsci/kubernetes-operator
WORKDIR $GOPATH/src/github.com/jenkinsci/kubernetes-operator
RUN mkdir -p /home/builder
ENV DOCKER_TLS_VERIFY 1
ENV DOCKER_CERT_PATH /minikube/certs
ENTRYPOINT ["./entrypoint.sh"]

19
entrypoint.sh Normal file
View File

@ -0,0 +1,19 @@
#!/bin/bash
export GOPATH=/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
export GO111MODULE=on
kubectl config set-cluster minikube --server=https://$MINIKUBE_IP:8443 \
--certificate-authority=/minikube/ca.crt && \
kubectl config set-credentials minikube --certificate-authority=/root/.minikube/ca.crt \
--client-key=/minikube/client.key \
--client-certificate=/minikube/client.crt && \
kubectl config set-context minikube --cluster=minikube --user=minikube && \
kubectl config use-context minikube
make go-dependencies
ln -s $GOPATH/src/github.com/jenkinsci/kubernetes-operator/vendor/k8s.io $GOPATH/src/k8s.i
ln -s $GOPATH/src/github.com/jenkinsci/kubernetes-operator/vendor/sigs.k8s.io $GOPATH/src/sigs.k8s.io
bash