diff --git a/Makefile b/Makefile deleted file mode 100644 index e86c3eb..0000000 --- a/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -DOCKER_IMAGE_OWNER='my5gcore' -DOCKER_IMAGE_NAME='base' -DOCKER_IMAGE_TAG='latest' - - -.PHONY: base -base: - docker build -t ${DOCKER_IMAGE_OWNER}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} ./base - docker image ls ${DOCKER_IMAGE_OWNER}/${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG} diff --git a/README.md b/README.md new file mode 100644 index 0000000..4d3ba1b --- /dev/null +++ b/README.md @@ -0,0 +1,131 @@ +# My5GCore Compose + +Esse repositório é uma versão do my5gCore executada através de containers e automatizada via compose. Esse projeto é baseado no [Free5gC Compose](https://github.com/free5gc/free5gc-compose). + + + +## Prerequisitos + +Certifique-se de estar utilizando o kernel 5.0.0-23-generic ou superior. Você pode verificar com: + +```bash +$ uname -r +``` + +### 1. GTP5G Kernel Module + +Por conta das exigências do UPF faz-se necessário a instalação do gtp5g: + +```bash +$ git clone https://github.com/PrinzOwO/gtp5g.git +$ cd gtp5g +$ make +$ sudo make install +``` + +### 2. Docker + +Instalação de pacotes pré-requisitos + +```bash +$ sudo apt install apt-transport-https ca-certificates curl software-properties-common +``` + +Adição da chave para o repositório oficial + +```bash +$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +``` + +Adição do repositório Docker + +```bash +$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" +``` + +Atualização do bando de pacotes + +```bash +$ sudo apt update +``` + +Instalação do Docker + +```bash +$ sudo apt install docker-ce +``` + +Para verificar o status + +``` +$ sudo systemctl status docker +``` + +### 3. Docker Compose + +O docker compose permite gerir a inicialização e finalização de diversos containers simultaneamente. Seu funcionamento se dá através de arquivos YAML que guardam as definições dos containers. + +Baixando a release `1.28.2` do binário de instalação e salvar em `/usr/local/bin/docker-compose`, que tornará este software globalmente acessível como `docker-compose`. + +```bash +$ sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +``` + +Definição das permissões para execução + +```bash +$ sudo chmod +x /usr/local/bin/docker-compose +``` + +Para verificar se tudo ocorreu bem execute + +```bash +$ docker-compose --version +``` + + + +## Iniciando My5g Core + +Como precisamos criar uma interface de tunel, necessitamos criar um containger com permissões de root. + +Dowload dos arquivos do núcleo: + +```bash +$ git clone https://github.com/my5G/my5Gcore-compose.git +``` + +Compilando os arquivos + +```bash +$ cd my5Gcore-compose +$ sudo make base +``` + +Construção dos serviços + +```bash +$ sudo docker-compose build +``` + +Executando os containers através do docker-compose + +```bash +$ sudo docker-compose up +``` + +ou + +```bash +$ sudo docker-compose up -d # Para execução em segundo plano +``` + +Para verificar as imagens disponíveis em nosso containers execute: + +```bash +$ sudo docker images +``` + +![my5gcore-compose](img/my5gcore.jpg) + +Figura 1: Funções do My5GCore diff --git a/docker-compose.yaml b/docker-compose.yaml index 757113c..e01c4ac 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,12 +1,9 @@ -version: '3.8' +version: '3.0' services: my5gcore-upf1: container_name: upf - build: - context: ./nf_upf - args: - DEBUG_TOOLS: "true" + image: thiagogmta/nf_upf command: bash -c "./router-upf.sh && ./free5gc-upfd -f ../config/upfcfg.yaml" volumes: - "${CONFIG}/upfcfg.yaml:/my5Gcore/config/upfcfg.yaml" @@ -41,10 +38,7 @@ services: my5gcore-nrf: container_name: nrf - build: - context: ./nf_nrf - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_nrf command: ./nrf -nrfcfg ../config/nrfcfg.conf expose: - "29510" @@ -63,10 +57,7 @@ services: my5gcore-amf: container_name: amf - build: - context: ./nf_amf - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_amf command: ./amf -amfcfg ../config/amfcfg.conf expose: - "29518" @@ -84,10 +75,7 @@ services: my5gcore-ausf: container_name: ausf - build: - context: ./nf_ausf - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_ausf command: ./ausf -ausfcfg ../config/ausfcfg.conf expose: - "29509" @@ -105,10 +93,7 @@ services: my5gcore-nssf: container_name: nssf - build: - context: ./nf_nssf - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_nssf command: ./nssf -nssfcfg ../config/nssfcfg.conf expose: - "29531" @@ -126,10 +111,7 @@ services: my5gcore-pcf: container_name: pcf - build: - context: ./nf_pcf - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_pcf command: ./pcf -pcfcfg ../config/pcfcfg.conf expose: - "29507" @@ -147,10 +129,7 @@ services: my5gcore-smf: container_name: smf - build: - context: ./nf_smf - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_smf command: ./smf -smfcfg ../config/smfcfg.conf -uerouting ../config/uerouting.yaml expose: - "29502" @@ -172,10 +151,7 @@ services: my5gcore-udm: container_name: udm - build: - context: ./nf_udm - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_udm command: ./udm -udmcfg ../config/udmcfg.conf expose: - "29503" @@ -194,10 +170,7 @@ services: my5gcore-udr: container_name: udr - build: - context: ./nf_udr - args: - DEBUG_TOOLS: "false" + image: thiagogmta/nf_udr command: ./udr -udrcfg ../config/udrcfg.conf expose: - "29504" @@ -219,10 +192,7 @@ services: my5gcore-n3iwf: container_name: n3iwf - build: - context: ./nf_n3iwf - args: - DEBUG_TOOLS: "true" + image: thiagogmta/nf_n3iwf command: sh -c "./n3iwf-ipsec.sh && ./n3iwf -n3iwfcfg ../config/n3iwfcfg.conf" ports: - "20000:20000" @@ -247,10 +217,7 @@ services: my5gcore-webui: container_name: webui - build: - context: ./webui - args: - DEBUG_TOOLS: "false" + image: thiagogmta/webui command: ./webui -free5gccfg ../config/free5GC.conf --webuicfg ../config/webuicfg.conf volumes: - ${CONFIG}/webuicfg.conf:/my5Gcore/config/webuicfg.conf diff --git a/img/my5gcore.jpg b/img/my5gcore.jpg new file mode 100644 index 0000000..666bb21 Binary files /dev/null and b/img/my5gcore.jpg differ diff --git a/nf_amf/Dockerfile b/nf_amf/Dockerfile deleted file mode 100644 index fbe8170..0000000 --- a/nf_amf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV F5GC_MODULE amf -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${F5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${F5GC_MODULE} ./${F5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${F5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${F5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${F5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29518 diff --git a/nf_ausf/Dockerfile b/nf_ausf/Dockerfile deleted file mode 100644 index c51b081..0000000 --- a/nf_ausf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE ausf -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29509 diff --git a/nf_n3iwf/Dockerfile b/nf_n3iwf/Dockerfile deleted file mode 100644 index b810b24..0000000 --- a/nf_n3iwf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE n3iwf -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U tcpdump vim strace net-tools curl netcat-openbsd python3 ; fi - -# Install N3IWF dependencies -RUN apk add -U iproute2 - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] diff --git a/nf_nrf/Dockerfile b/nf_nrf/Dockerfile deleted file mode 100644 index c8c8798..0000000 --- a/nf_nrf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE nrf -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29510 diff --git a/nf_nssf/Dockerfile b/nf_nssf/Dockerfile deleted file mode 100644 index a679b8e..0000000 --- a/nf_nssf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE nssf -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29531 diff --git a/nf_pcf/Dockerfile b/nf_pcf/Dockerfile deleted file mode 100644 index 1602513..0000000 --- a/nf_pcf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE pcf -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29507 diff --git a/nf_smf/Dockerfile b/nf_smf/Dockerfile deleted file mode 100644 index f43d3c8..0000000 --- a/nf_smf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE smf -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29502 diff --git a/nf_udm/Dockerfile b/nf_udm/Dockerfile deleted file mode 100644 index 1943ff3..0000000 --- a/nf_udm/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE udm -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29503 diff --git a/nf_udr/Dockerfile b/nf_udr/Dockerfile deleted file mode 100644 index f9ca2a6..0000000 --- a/nf_udr/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE udr -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ log/ support/TLS/ ${My5GC_MODULE}/ - -# Copy executable and default certs -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE} -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.pem ./support/TLS/ -COPY --from=builder /my5Gcore/support/TLS/${My5GC_MODULE}.key ./support/TLS/ - -# Move to the binary path -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# Certificates (if not using default) volume -VOLUME [ "/my5Gcore/support/TLS" ] - -# Exposed ports -EXPOSE 29504 diff --git a/nf_upf/#Dockerfile# b/nf_upf/#Dockerfile# deleted file mode 100644 index b663088..0000000 --- a/nf_upf/#Dockerfile# +++ /dev/null @@ -1,34 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM ubuntu:18.04 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE my5Gcore-upfd -ENV DEBIAN_FRONTEND noninteractive -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apt-get update && apt-get install -y vim strace net-tools iputils-ping curl netcat ; fi - -# Install UPF dependencies -RUN apt-get update \ - && apt-get install -y libmnl0 libyaml-0-2 iproute2 \ - && apt-get clean - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p ${My5GC_MODULE}/config/ - -# Copy executable and default configuration -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE}/ - -# Copy linked libs -COPY --from=builder /my5Gcore/libgtp5gnl.so.0 /usr/local/lib -COPY --from=builder /my5Gcore/liblogger.so /usr/local/lib - -# Move to the executable location -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Update links -RUN ldconfig diff --git a/nf_upf/Dockerfile b/nf_upf/Dockerfile deleted file mode 100644 index 6138504..0000000 --- a/nf_upf/Dockerfile +++ /dev/null @@ -1,34 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM ubuntu:18.04 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE free5gc-upfd -ENV DEBIAN_FRONTEND noninteractive -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apt-get update && apt-get install -y vim strace net-tools iputils-ping curl netcat ; fi - -# Install UPF dependencies -RUN apt-get update \ - && apt-get install -y libmnl0 libyaml-0-2 iproute2 iptables\ - && apt-get clean - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p ${My5GC_MODULE}/config/ - -# Copy executable and default configuration -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./${My5GC_MODULE}/ - -# Copy linked libs -COPY --from=builder /my5Gcore/libgtp5gnl.so.0 /usr/local/lib -COPY --from=builder /my5Gcore/liblogger.so /usr/local/lib - -# Move to the executable location -WORKDIR /my5Gcore/${My5GC_MODULE} - -# Update links -RUN ldconfig diff --git a/run.sh b/run.sh deleted file mode 100755 index b245cb7..0000000 --- a/run.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -sudo docker-compose down -sudo rm -rf dbdata/ -sudo docker-compose up -d -sudo ./sample/config/subscribers.sh - -sudo docker-compose exec my5gcore-n3iwf sh diff --git a/webui/Dockerfile b/webui/Dockerfile deleted file mode 100644 index 7e77d24..0000000 --- a/webui/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -FROM my5gcore/base:latest AS builder -FROM alpine:3.8 - -LABEL description="My5Gcore open source 5G Core Network" \ - version="Stage 3" - -ENV My5GC_MODULE webui -ARG DEBUG_TOOLS - -# Install debug tools ~ 100MB (if DEBUG_TOOLS is set to true) -RUN if [ "$DEBUG_TOOLS" = "true" ] ; then apk add -U vim strace net-tools curl netcat-openbsd ; fi - -# Set working dir -WORKDIR /my5Gcore -RUN mkdir -p config/ webconsole/publicoo - -# Copy executable, frontend static files and default configuration -COPY --from=builder /my5Gcore/${My5GC_MODULE} ./webconsole -COPY --from=builder /my5Gcore/public ./webconsole/public - -# Move to the executable location -WORKDIR /my5Gcore/webconsole - -# Config files volume -VOLUME [ "/my5Gcore/config" ] - -# WebUI uses the port 5000 -EXPOSE 5000