From 05a446e4a2983ed7f907324cc276c0765726f0e0 Mon Sep 17 00:00:00 2001 From: Jakub Al-Khalili Date: Mon, 8 Jul 2019 15:03:23 +0200 Subject: [PATCH] Added Dockerfile and entrypoint --- Dockerfile | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ entrypoint.sh | 19 ++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 Dockerfile create mode 100644 entrypoint.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..01cc30cc --- /dev/null +++ b/Dockerfile @@ -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"] diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 00000000..ef742ebb --- /dev/null +++ b/entrypoint.sh @@ -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 \ No newline at end of file