diff --git a/src/bgpls_speaker/Dockerfile b/src/bgpls_speaker/Dockerfile index 956ba54a03b91d52d42f9f8adc1bc226b519bd29..d8722934d38583c41eea8c0adbad1d22bf184887 100644 --- a/src/bgpls_speaker/Dockerfile +++ b/src/bgpls_speaker/Dockerfile @@ -42,11 +42,13 @@ WORKDIR /protocols/ # RUN mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ # -Dfile=/protocols/target/network-protocols-1.1-SNAPSHOT.jar \ -# -DgroupId=es.tid.netphony -DartifactId=network-protocols \ -# -Dversion=1.1-SNAPSHOT-Dpackaging=jar \ +# -DgroupId=es.tid.netphony \ +# -DartifactId=network-protocols \ +# -Dversion=1.1-SNAPSHOT \ +# -Dpackaging=jar \ # -DlocalRepositoryPath=/ -RUN mvn clean install -X +RUN mvn clean install -X WORKDIR / RUN mkdir -p /var/teraflow/bgpls @@ -60,7 +62,8 @@ COPY src/bgpls_speaker/service/java/netphony-topology/pom.xml pom.xml WORKDIR /var/teraflow/bgpls/service/java/netphony-topology/ -RUN mvn package -X -DskipTests +RUN mvn clean compile -DskipTests -Dmaven.repo.local=$HOME/.m2/es/tid/netphony/network-protocols +RUN mvn package -P bgp-ls-speaker assembly:single -DskipTests # ENTRYPOINT [ "ls","-R" ] # ------------------------------------------- @@ -128,7 +131,7 @@ RUN python3 -m pip install -r requirements.txt WORKDIR /var/teraflow/bgpls_speaker RUN mkdir -p /java COPY src/bgpls_speaker/service/java/* /java/ -COPY --from=build /var/teraflow/bgpls/service/java/netphony-topology/target/topology-1.4.0-SNAPSHOT.jar /var/teraflow/bgpls_speaker/bgp_ls.jar +COPY --from=build /var/teraflow/bgpls/service/java/netphony-topology/target/bgp-ls-speaker-jar-with-dependencies.jar /var/teraflow/bgpls_speaker/bgp_ls.jar # Add component files into working directory WORKDIR /var/teraflow diff --git a/src/bgpls_speaker/Dockerfile_mvn b/src/bgpls_speaker/Dockerfile_mvn deleted file mode 100644 index b9e0818f357fb12faaeccc4b5924874d0e9d701f..0000000000000000000000000000000000000000 --- a/src/bgpls_speaker/Dockerfile_mvn +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) -# -# 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. - -# -# Maven install stage -# -# ---------------------------------------------- -FROM alpine/git:latest AS repo - -WORKDIR /usr/src/app -RUN git clone https://github.com/telefonicaid/netphony-network-protocols.git . - -FROM eclipse-temurin:17-jdk-focal - -RUN apt-get update \ - && apt-get install -y ca-certificates curl git --no-install-recommends \ - && rm -rf /var/lib/apt/lists/* - -# common for all images -ENV MAVEN_HOME /usr/share/maven - -COPY --from=maven:3.8.8-eclipse-temurin-11 ${MAVEN_HOME} ${MAVEN_HOME} -COPY --from=maven:3.8.8-eclipse-temurin-11 /usr/local/bin/mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh -COPY --from=maven:3.8.8-eclipse-temurin-11 /usr/share/maven/ref/settings-docker.xml /usr/share/maven/ref/settings-docker.xml - -RUN ln -s ${MAVEN_HOME}/bin/mvn /usr/bin/mvn - -ARG MAVEN_VERSION=3.8.8 -ARG USER_HOME_DIR="/root" -ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" - -COPY --from=repo /usr/src/app/* /protocols/ - -WORKDIR /protocols/ - -# RUN mvn package -X - -# RUN mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file \ -# -Dfile=/protocols/target/network-protocols-1.1-SNAPSHOT.jar \ -# -DgroupId=es.tid.netphony -DartifactId=network-protocols \ -# -Dversion=1.1-SNAPSHOT-Dpackaging=jar \ -# -DlocalRepositoryPath=/ - -RUN mvn clean install -X - -WORKDIR / -RUN mkdir -p /var/teraflow/bgpls -WORKDIR /var/teraflow/bgpls - - -# COPY . /var/teraflow/bgpls/ - -COPY src/bgpls_speaker/service/java/netphony-topology/ /var/teraflow/bgpls/service/java/netphony-topology/ -COPY src/bgpls_speaker/service/java/netphony-topology/pom.xml pom.xml - -WORKDIR /var/teraflow/bgpls/service/java/netphony-topology/ - -RUN mvn package -X -DskipTests - -# ENTRYPOINT [ "ls","-R" ] -# ------------------------------------------- -# jar created in /netphony-topology/target/bgp-ls-speaker-jar-with-dependencies.jar - -# -# Stage 2 -# - -FROM python:3.9-slim - - -# Install dependencies -RUN apt-get --yes --quiet --quiet update && \ - apt-get --yes --quiet --quiet install wget g++ && \ - rm -rf /var/lib/apt/lists/* - -# Set Python to show logs as they occur -ENV PYTHONUNBUFFERED=0 - -# Download the gRPC health probe -RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ - wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ - chmod +x /bin/grpc_health_probe - -# Get generic Python packages -RUN python3 -m pip install --upgrade pip -RUN python3 -m pip install --upgrade setuptools wheel -RUN python3 -m pip install --upgrade pip-tools - -# Install OpenJDK-11 -RUN apt-get update && \ - apt-get install -y openjdk-17-jre && \ - apt-get clean; - -# Get common Python packages -# Note: this step enables sharing the previous Docker build steps among all the Python components -WORKDIR /var/teraflow -COPY common_requirements.in common_requirements.in -RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in -RUN python3 -m pip install -r common_requirements.txt - -# Add common files into working directory -WORKDIR /var/teraflow/common -COPY src/common/. ./ -RUN rm -rf proto - -# Create proto sub-folder, copy .proto files, and generate Python code -RUN mkdir -p /var/teraflow/common/proto -WORKDIR /var/teraflow/common/proto -RUN touch __init__.py -COPY proto/*.proto ./ -RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto -RUN rm *.proto -RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; - -# Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/bgpls_speaker -WORKDIR /var/teraflow/bgpls_speaker -COPY src/bgpls_speaker/requirements.in requirements.in -RUN pip-compile --quiet --output-file=requirements.txt requirements.in -RUN python3 -m pip install -r requirements.txt - -# Java module necessary config files -WORKDIR /var/teraflow/bgpls_speaker -RUN mkdir -p /java -COPY src/bgpls_speaker/service/java/* /java/ -COPY --from=build /var/teraflow/bgpls/service/java/netphony-topology/target/topology-1.4.0-SNAPSHOT.jar /var/teraflow/bgpls_speaker/bgp_ls.jar - -# Add component files into working directory -WORKDIR /var/teraflow -COPY src/context/. context/ -COPY src/device/. device/ -COPY src/pathcomp/frontend/. pathcomp/frontend/ -COPY src/service/. service/ -COPY src/bgpls_speaker/. bgpls_speaker/ - -# Start the service -ENTRYPOINT ["python", "-m", "bgpls_speaker.service"] -# ENTRYPOINT [ "ls","-R" ] \ No newline at end of file diff --git a/src/bgpls_speaker/service/java/exec_speakear_java.sh b/src/bgpls_speaker/service/java/exec_speakear_java.sh new file mode 100644 index 0000000000000000000000000000000000000000..4b1672dcb41fc427060f6aa34e79cdd23d654cdc --- /dev/null +++ b/src/bgpls_speaker/service/java/exec_speakear_java.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd netphony-topology/ +"/home/ubuntu/downloads/apache-maven-3.8.8/bin/mvn" clean package -P bgp-ls-speaker assembly:single -DskipTests +cd .. +sudo java -jar netphony-topology/target/bgp-ls-speaker-jar-with-dependencies.jar BGP4Parameters_3.xml \ No newline at end of file