X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ta%2Fcaas-danm.git;a=blobdiff_plain;f=docker-build%2Fdanm-builder%2FDockerfile;fp=docker-build%2Fnetwatcher%2FDockerfile;h=7b27c45b09d2158ce17e681ebd89c0922b6823f0;hp=85168a7581e7cf48f8568f814db00c5159f5393c;hb=b2946a88e4058633ad18df1abddf5be1d247070c;hpb=d45b4117f30f9ad842c24f0c7c9fd8524a7f358f diff --git a/docker-build/netwatcher/Dockerfile b/docker-build/danm-builder/Dockerfile similarity index 61% rename from docker-build/netwatcher/Dockerfile rename to docker-build/danm-builder/Dockerfile index 85168a7..7b27c45 100644 --- a/docker-build/netwatcher/Dockerfile +++ b/docker-build/danm-builder/Dockerfile @@ -1,41 +1,56 @@ # Copyright 2019 Nokia -# +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.9 -MAINTAINER Levente Kale +FROM centos:7.6.1810 +MAINTAINER Krisztian Lengyel -ARG NETWATCHER -ENV NETWATCHER_VERSION=$NETWATCHER +ARG DANM_VERSION +ARG components="danm fakeipam" +ARG go_version +ARG binaries ENV GOPATH /go -ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH +ARG go_install_dir="/usr/local/go" +ARG glide_install_dir="/usr/local/glide" +ENV PATH $GOPATH/bin:$go_install_dir/bin:$glide_install_dir:$PATH ENV CGO_ENABLED=0 ENV GOOS=linux ARG code_generator_version="kubernetes-1.13.4" +ARG build_packages="gcc gcc-c++ glibc-devel make autoconf git which libtool" +ARG danm_dependencies="iptables socat grep findutils curl conntrack-tools iputils" WORKDIR / RUN mkdir -p $GOPATH/bin \ && mkdir -p $GOPATH/src -RUN apk add --no-cache curl libcap iputils - -RUN apk add --no-cache --virtual .tools ca-certificates gcc musl-dev go glide git \ +RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \ +&& yum install -y --setopt=skip_missing_names_on_install=False \ + ${build_packages} \ + ${danm_dependencies} \ + bash \ + golang \ +&& set -x \ +&& mkdir -p ${go_install_dir} \ +&& curl -fsSL -k https://dl.google.com/go/go${go_version}.linux-amd64.tar.gz | tar zx --strip-components=1 -C ${go_install_dir} \ +&& glide_version="$(curl -sSLf https://glide.sh/version)" \ +&& mkdir -p ${glide_install_dir} \ +&& curl -fsSL https://github.com/Masterminds/glide/releases/download/${glide_version}/glide-${glide_version}-linux-amd64.tar.gz | tar zx --strip-components=1 -C ${glide_install_dir} \ && mkdir -p $GOPATH/src/github.com/nokia \ && git clone https://github.com/nokia/danm.git $GOPATH/src/github.com/nokia/danm \ && cd $GOPATH/src/github.com/nokia/danm \ && git fetch --tags \ -&& git checkout ${NETWATCHER_VERSION} \ +&& git checkout ${DANM_VERSION} \ && glide install --strip-vendor \ && go get -d github.com/vishvananda/netlink \ && go get github.com/containernetworking/plugins/pkg/ns \ @@ -50,22 +65,8 @@ RUN apk add --no-cache --virtual .tools ca-certificates gcc musl-dev go glide gi && client-gen --alsologtostderr --clientset-name versioned --input-base "" --input github.com/nokia/danm/crd/apis/danm/v1 --clientset-path github.com/nokia/danm/crd/client/clientset \ && lister-gen --alsologtostderr --input-dirs github.com/nokia/danm/crd/apis/danm/v1 --output-package github.com/nokia/danm/crd/client/listers \ && informer-gen --alsologtostderr --input-dirs github.com/nokia/danm/crd/apis/danm/v1 --versioned-clientset-package github.com/nokia/danm/crd/client/clientset/versioned --listers-package github.com/nokia/danm/crd/client/listers --output-package github.com/nokia/danm/crd/client/informers \ -&& go install -a -ldflags '-extldflags "-static"' github.com/nokia/danm/cmd/netwatcher \ -&& cp $GOPATH/bin/netwatcher /usr/local/bin/netwatcher \ -&& rm -rf $GOPATH/src \ -&& rm -rf $GOPATH/bin \ -&& apk del .tools \ -&& rm -rf /var/cache/apk/* \ -&& rm -rf /var/lib/apt/lists/* \ -&& rm -rf /tmp/* \ -&& rm -rf ~/.glide - -RUN adduser -u 147 -D -H -s /sbin/nologin danm \ -&& chown root:danm /usr/local/bin/netwatcher \ -&& chmod 750 /usr/local/bin/netwatcher \ -&& setcap cap_sys_ptrace,cap_sys_admin,cap_net_admin=eip /usr/local/bin/netwatcher \ -&& setcap cap_net_raw=eip /usr/sbin/arping - -USER danm - -ENTRYPOINT ["/usr/local/bin/netwatcher"] +&& mkdir -p ${binaries} \ +&& for component in $components; do \ + go install -a -ldflags '-extldflags "-static"' github.com/nokia/danm/cmd/${component}; \ + cp $GOPATH/bin/${component} ${binaries}/${component}; \ + done