X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=bldr-imgs%2Fbldr-ubuntu18-c-go%2FDockerfile;fp=bldr-imgs%2Fbldr-ubuntu18-c-go%2FDockerfile;h=6742e97e9bb0e8a021b5674098d4a10d7e7f19c8;hb=57174356ce7614bceddc8822610785726bf4216f;hp=0000000000000000000000000000000000000000;hpb=3b56acc14a2308e853612e22738cd44687288149;p=it%2Fdev.git diff --git a/bldr-imgs/bldr-ubuntu18-c-go/Dockerfile b/bldr-imgs/bldr-ubuntu18-c-go/Dockerfile new file mode 100644 index 0000000..6742e97 --- /dev/null +++ b/bldr-imgs/bldr-ubuntu18-c-go/Dockerfile @@ -0,0 +1,128 @@ +# O-RAN-SC +# +# Copyright (C) 2019-2020 AT&T Intellectual Property and 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. + +# Builder image with superset of CI tools for RIC components + +FROM nexus3.o-ran-sc.org:10001/ubuntu:18.04 + +RUN apt-get update && apt-get install -y \ + autoconf \ + autoconf-archive \ + automake \ + autotools-dev \ + build-essential \ + g++ \ + gcc \ + git \ + libbz2-dev \ + libicu-dev \ + libsctp-dev \ + libtool \ + lksctp-tools \ + make \ + python-dev \ + pkg-config \ + software-properties-common \ + sudo \ + wget \ + zlib1g \ + zlib1g-dev \ + zlibc \ + zip + +WORKDIR /tmp + +# Install go versions in /opt +RUN mkdir -p /opt/go + +ARG g12="1.12.17" +RUN wget -nv https://dl.google.com/go/go${g12}.linux-amd64.tar.gz \ + && tar -xf go${g12}.linux-amd64.tar.gz \ + && mv go /opt/go/1.12 \ + && rm -f go*.gz + +ARG g13="1.13.9" +RUN wget -nv https://dl.google.com/go/go${g13}.linux-amd64.tar.gz \ + && tar -xf go${g13}.linux-amd64.tar.gz \ + && mv go /opt/go/1.13 \ + && rm -f go*.gz + +ARG g14="1.14.1" +RUN wget -nv https://dl.google.com/go/go${g14}.linux-amd64.tar.gz \ + && tar -xf go${g14}.linux-amd64.tar.gz \ + && mv go /opt/go/1.14 \ + && rm -f go*.gz + +ENV GOPATH=/root/go +# Default path has go version 1.12.x +# Use /opt/go/1.13/bin for version 1.13.x +# Use /opt/go/1.14/bin for version 1.14.x +ENV PATH=$PATH:/opt/go/1.12/bin:$GOPATH/bin + +# This installs go-acc to GOPATH +RUN go version \ + && go get -v github.com/ory/go-acc \ + && go-acc --help + +# install a recent version of cmake, ubuntu repo version is old +ARG cv="3.14.5" +RUN wget -nv https://github.com/Kitware/CMake/releases/download/v${cv}/cmake-${cv}-Linux-x86_64.sh \ + && chmod +x cmake-${cv}-Linux-x86_64.sh \ + && ./cmake-${cv}-Linux-x86_64.sh --prefix=/usr/local --skip-license \ + && rm -f cmake*.sh + +# install a recent version of ninja-build, ubuntu repo version is old +RUN wget -nv https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip \ + && unzip ninja-linux.zip \ + && chmod +x ninja \ + && mv ninja /usr/local/bin \ + && rm -f ninja*.zip + +# sonar-scanner is not available in ubuntu repo +ARG sv="4.2.0.1873" +RUN wget -nv https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${sv}-linux.zip \ + && unzip sonar-scanner-cli-${sv}-linux.zip \ + && mv sonar-scanner-${sv}-linux /usr/local/sonar-scanner \ + && rm -f sonar*.zip + +# golangci-lint is not available in ubuntu repo +RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $GOPATH/bin v1.23.6 \ + && rm -f install.sh + +# NNG repo is not frequently tagged so it's pinned to a commit hash. +# This commit provides fix to the proxy-reconnect +# bug that we identified: https://github.com/nanomsg/nng/issues/970 +RUN git clone https://github.com/nanomsg/nng.git \ + && cd nng \ + && git checkout e618abf8f3db2a94269a79c8901a51148d48fcc2 \ + && mkdir build \ + && cd build \ + && cmake -DBUILD_SHARED_LIBS=1 -G Ninja .. \ + && ninja \ + && ninja install \ + && cd ../.. \ + && rm -rf nng + +# install a recent version of boost, ubuntu repo version is old +ARG bv="1_69_0" +RUN wget -nv https://dl.bintray.com/boostorg/release/1.69.0/source/boost_${bv}.zip \ + && unzip -q boost_${bv}.zip \ + && cd boost_${bv} \ + && ./bootstrap.sh --prefix=/usr/ \ + && ./b2 \ + && ./b2 install \ + && cd ../ \ + && rm -rf boost*.zip boost_${bv}