blob: cb18a63921272508ca6d699bd78099dbdbd16509 [file] [log] [blame]
naman.guptab7a743a2022-12-07 18:01:24 +05301# Copyright (c) 2021 Samsung.
Tommy Carpenter5ad8f032019-05-30 14:33:21 -04002#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
naman.guptab7a743a2022-12-07 18:01:24 +05307# http://www.apache.org/licenses/LICENSE-2.0
Tommy Carpenter5ad8f032019-05-30 14:33:21 -04008#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
Tommy Carpenter40caa312019-09-12 16:24:10 -040014
naman.guptab7a743a2022-12-07 18:01:24 +053015#-----------------------------------------------------------
E. Scott Daniels06a1a142021-05-13 09:12:28 -040016
naman.guptab7a743a2022-12-07 18:01:24 +053017FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu20-c-go:1.1.0 AS a1-build
E. Scott Daniels06a1a142021-05-13 09:12:28 -040018
19
naman.guptab7a743a2022-12-07 18:01:24 +053020#TODO check why defualt golang is not working
21ARG GOVERSION="1.18.5"
22RUN wget -nv https://dl.google.com/go/go${GOVERSION}.linux-amd64.tar.gz \
23 && tar -xf go${GOVERSION}.linux-amd64.tar.gz \
24 && mv go /opt/go/${GOVERSION} \
25 && rm -f go*.gz
Tommy Carpenter78ba2732020-02-07 14:06:20 -050026
Lott, Christopher (cl778h)d26734f2020-04-27 17:25:05 -040027
naman.guptab7a743a2022-12-07 18:01:24 +053028ENV DEFAULTPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
29ENV PATH=$DEFAULTPATH:/usr/local/go/bin:/opt/go/${GOVERSION}/bin:/root/go/bin
E. Scott Daniels06a1a142021-05-13 09:12:28 -040030
naman.guptab7a743a2022-12-07 18:01:24 +053031RUN apt-get update -y && apt-get install -y jq
E. Scott Daniels06a1a142021-05-13 09:12:28 -040032
naman.guptab7a743a2022-12-07 18:01:24 +053033# Update CA certificates
34RUN apt update && apt install --reinstall -y \
35 ca-certificates \
36 && \
37 update-ca-certificates
E. Scott Daniels06a1a142021-05-13 09:12:28 -040038
naman.guptab7a743a2022-12-07 18:01:24 +053039#Install RMR
E. Scott Daniels06a1a142021-05-13 09:12:28 -040040
czichy540cb282023-12-13 12:17:28 +020041ARG RMR_VER=4.9.4
E. Scott Daniels06a1a142021-05-13 09:12:28 -040042ARG RMR_PKG_URL=https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/
43
44RUN wget -nv --content-disposition ${RMR_PKG_URL}/rmr_${RMR_VER}_amd64.deb/download.deb
45RUN wget -nv --content-disposition ${RMR_PKG_URL}/rmr-dev_${RMR_VER}_amd64.deb/download.deb
46RUN dpkg -i rmr_${RMR_VER}_amd64.deb \
naman.guptab7a743a2022-12-07 18:01:24 +053047 && dpkg -i rmr-dev_${RMR_VER}_amd64.deb \
48 && ldconfig
Lott, Christopher (cl778h)d26734f2020-04-27 17:25:05 -040049
naman.guptab7a743a2022-12-07 18:01:24 +053050
51ENV PATH="/usr/local/go/bin:${PATH}"
52
53ENV GOPATH="/go"
54
55RUN mkdir -p /go/bin
56RUN mkdir -p /go/src/ws
57WORKDIR "/go/src/ws"
58
59# Module prepare (if go.mod/go.sum updated)
60COPY go.mod /go/src/ws
61COPY go.sum /go/src/ws
62RUN GO111MODULE=on go mod download
63
64# build and test
65COPY . /go/src/ws
66COPY ./config/config_test.yaml /opt/a1-mediator/
naman.guptab7a743a2022-12-07 18:01:24 +053067
naman.gupta5716d0f2022-12-09 13:11:01 +053068ENV CFG_FILE=/opt/a1-mediator/config_test.yaml
naman.guptab7a743a2022-12-07 18:01:24 +053069ENV A1_CONFIG_FILE=/opt/a1-mediator/config_test.yaml
70
71
72# Build the code
73RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /go/src/ws/cache/go/cmd/a1 cmd/a1.go
74
75# Run unit tests
76RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go test -p 1 -cover ./pkg/resthooks/
77RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go test -p 1 -cover ./pkg/a1/
78RUN GO111MODULE=on GO_ENABLED=0 GOOS=linux go test -p 1 -cover ./pkg/policy
79
80RUN gofmt -l $(find cmd/ pkg/ -name '*.go' -not -name '*_test.go')
81
82CMD ["/bin/bash"]
83
84
85#----------------------------------------------------------
86FROM ubuntu:18.04 as a1-mediator
87
88RUN apt-get update -y \
89 && apt-get install --reinstall -y sudo openssl ca-certificates ca-cacert wget\
90 && apt-get clean && update-ca-certificates
91
92#Install RMR
93
czichy272fb5b2023-06-08 14:09:41 +030094ARG RMR_VER=4.9.1
naman.guptab7a743a2022-12-07 18:01:24 +053095ARG RMR_PKG_URL=https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/
96
97RUN wget -nv --content-disposition ${RMR_PKG_URL}/rmr_${RMR_VER}_amd64.deb/download.deb
98RUN wget -nv --content-disposition ${RMR_PKG_URL}/rmr-dev_${RMR_VER}_amd64.deb/download.deb
99RUN dpkg -i rmr_${RMR_VER}_amd64.deb \
100 && dpkg -i rmr-dev_${RMR_VER}_amd64.deb \
101 && ldconfig
102
E. Scott Daniels06a1a142021-05-13 09:12:28 -0400103#
naman.guptab7a743a2022-12-07 18:01:24 +0530104# a1-mediator
E. Scott Daniels06a1a142021-05-13 09:12:28 -0400105#
naman.guptab7a743a2022-12-07 18:01:24 +0530106RUN mkdir -p /opt/a1-mediator \
107 && chmod -R 755 /opt/a1-mediator
E. Scott Daniels06a1a142021-05-13 09:12:28 -0400108
naman.guptab7a743a2022-12-07 18:01:24 +0530109COPY --from=a1-build /go/src/ws/cache/go/cmd/a1 /opt/a1-mediator/a1
110
111COPY ./config/config.yaml /opt/a1-mediator/
naman.guptab7a743a2022-12-07 18:01:24 +0530112
113WORKDIR /opt/a1-mediator
114
naman.gupta5716d0f2022-12-09 13:11:01 +0530115ARG CONFIG=/opt/a1-mediator/config.yaml
116ENV CFG_FILE=$CONFIG
naman.guptab7a743a2022-12-07 18:01:24 +0530117ARG A1_CONFIG=/opt/a1-mediator/config.yaml
118ENV A1_CONFIG_FILE=$A1_CONFIG
E. Scott Daniels06a1a142021-05-13 09:12:28 -0400119
120
naman.guptab7a743a2022-12-07 18:01:24 +0530121COPY a1-entrypoint.sh /opt/a1-mediator/
naman.gupta5716d0f2022-12-09 13:11:01 +0530122RUN chmod -R 755 /opt/a1-mediator/a1-entrypoint.sh
naman.guptab7a743a2022-12-07 18:01:24 +0530123ENTRYPOINT ["/opt/a1-mediator/a1-entrypoint.sh"]
E. Scott Daniels06a1a142021-05-13 09:12:28 -0400124