98 lines
2.6 KiB
Bash
Executable File
98 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. ../../jenkins-common.sh
|
|
IMAGE_SUFFIX="${IMAGE_SUFFIX?centos8}"
|
|
if [ "x$IMAGE_SUFFIX" != "x" ]; then
|
|
IMAGE_SUFFIX="-${IMAGE_SUFFIX}" # append dash
|
|
fi
|
|
|
|
IMAGE_DIR_PREFIX="../.." docker_images_require \
|
|
"systemd"
|
|
|
|
networks=()
|
|
docker_names=()
|
|
|
|
SUBNET=${SUBNET:-25}
|
|
|
|
NET_NAME="osmo-ran-subnet$subnet"
|
|
networks+=("$NET_NAME")
|
|
network_bridge_create $SUBNET
|
|
|
|
#$1:image_name, $2: subnet, $3: ip suffix, $4: docker args
|
|
run_image() {
|
|
local image_name=$1
|
|
local subnet=$2
|
|
local ipsuffix=$3
|
|
local docker_args=$4
|
|
|
|
IMAGE_DIR_PREFIX="."
|
|
docker_images_require \
|
|
$image_name
|
|
|
|
VOL_RAN_DIR="$VOL_BASE_DIR/$image_name-$subnet"
|
|
mkdir $VOL_RAN_DIR
|
|
mkdir $VOL_RAN_DIR/data
|
|
mkdir $VOL_RAN_DIR/osmocom
|
|
cp $IMAGE_DIR_PREFIX/${image_name}/osmocom/* $VOL_RAN_DIR/osmocom/
|
|
|
|
DOCKER_IN_IP="172.18.$subnet.$ipsuffix"
|
|
SGSN_IP="${SGSN_IP:-192.168.30.1}"
|
|
STP_IP="${STP_IP:-192.168.30.1}"
|
|
BSC_IP="172.18.$SUBNET.200"
|
|
MGW_IP="172.18.$SUBNET.200"
|
|
BTS_IP="172.18.$SUBNET.201"
|
|
PCU_IP="172.18.$SUBNET.201"
|
|
TRX_IP="${TRX_IP:-172.18.$SUBNET.202}"
|
|
sed -i "s/\$DOCKER_IN_IP/${DOCKER_IN_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
sed -i "s/\$SGSN_IP/${SGSN_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
sed -i "s/\$STP_IP/${STP_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
sed -i "s/\$BSC_IP/${BSC_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
sed -i "s/\$MGW_IP/${MGW_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
sed -i "s/\$BTS_IP/${BTS_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
sed -i "s/\$PCU_IP/${PCU_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
sed -i "s/\$TRX_IP/${TRX_IP}/g" $VOL_RAN_DIR/osmocom/*
|
|
|
|
echo Starting container with RAN
|
|
docker_name="${BUILD_TAG}-ran-${image_name}-subnet$subnet"
|
|
docker run --rm \
|
|
$(docker_network_params $subnet $ipsuffix) \
|
|
--privileged \
|
|
--ulimit core=-1 \
|
|
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
|
|
-v $VOL_RAN_DIR/data:/data \
|
|
-v $VOL_RAN_DIR/osmocom:/etc/osmocom \
|
|
--name ${docker_name} -d \
|
|
$docker_args \
|
|
$REPO_USER/${image_name}${IMAGE_SUFFIX}
|
|
docker_names+=("$docker_name")
|
|
}
|
|
|
|
kill_containers() {
|
|
for i in "${docker_names[@]}"; do
|
|
docker kill $i
|
|
done
|
|
}
|
|
|
|
remove_networks() {
|
|
for i in "${networks[@]}"; do
|
|
NET_NAME="$i"
|
|
network_remove
|
|
done
|
|
}
|
|
|
|
sighandler() {
|
|
echo "SIGINT, exiting..."
|
|
kill_containers
|
|
remove_networks
|
|
exit 0
|
|
}
|
|
|
|
trap 'sighandler' SIGINT
|
|
|
|
run_image "ran-bsc_mgw" $SUBNET 200 "-p 4242:4242 -p 4249:4249 -p 4243:4243 -p 4267:4267"
|
|
run_image "ran-bts_pcu" $SUBNET 201 "-p 4241:4241 -p 4238:4238 -p 4240:4240"
|
|
run_image "ran-trx-uhd" $SUBNET 202 "-p 4237:4237 -p 4236:4236 -p 5700:5700 -p 5701:5701 -p 5702:5702 -v /dev/bus/usb:/dev/bus/usb"
|
|
#run_image "ran-trx-ipc" $SUBNET 202 "-p 4237:4237 -p 4236:4236 -p 5700:5700 -p 5701:5701 -p 5702:5702 -v /tmp/ud:/tmp/ud --ipc=host"
|
|
|
|
while true; do sleep 1000; done
|