only create container if it doesn't already exist

pull/1/head
Jordan Sokolic 2020-02-14 13:17:36 +02:00
parent a097b292e9
commit fccd5651ba
1 changed files with 22 additions and 16 deletions

38
run.sh
View File

@ -1,5 +1,4 @@
#!/bin/bash #!/bin/bash
set -x
source .env source .env
IFACE=$1 IFACE=$1
@ -36,10 +35,10 @@ function _cleanup {
echo "* cleaning up..." echo "* cleaning up..."
echo "* stopping container" echo "* stopping container"
docker stop openwrt_1 >/dev/null docker stop openwrt_1 >/dev/null
echo "* deleting network" # echo "* deleting network"
docker network rm $NET_NAME >/dev/null # docker network rm $NET_NAME >/dev/null
echo -n "* restoring network interface name.." echo -n "* restoring network interface name.."
retries=10 retries=15
while [[ retries -ge 0 && -z $IFACE_NEW ]]; do while [[ retries -ge 0 && -z $IFACE_NEW ]]; do
_get_dev_from_phy $PHY _get_dev_from_phy $PHY
sleep 1 sleep 1
@ -68,19 +67,26 @@ function main {
docker network create --driver bridge \ docker network create --driver bridge \
--gateway $NET_GW \ --gateway $NET_GW \
--subnet $NET_SUBNET \ --subnet $NET_SUBNET \
$NET_NAME $NET_NAME 2>/dev/null
echo "* starting container" docker inspect $CONTAINER >/dev/null 2>&1
docker run --rm \ if [[ $? -eq 0 ]]; then
--network $NET_NAME \ echo "* starting container '$CONTAINER'"
-p2222:22 \ docker start $CONTAINER
-p8080:80 -d \ docker exec $CONTAINER /etc/init.d/network restart
--env-file .env \ else
-e WIFI_PHY=$PHY \ echo "* creating container $CONTAINER"
--cap-add NET_ADMIN \ docker run -d \
--cap-add NET_RAW \ --network $NET_NAME \
--hostname openwrt\ -p2222:22 \
--name $CONTAINER openwrt >/dev/null -p8080:80 \
--env-file .env \
-e WIFI_PHY=$PHY \
--cap-add NET_ADMIN \
--cap-add NET_RAW \
--hostname openwrt\
--name $CONTAINER openwrt >/dev/null
fi
pid=$(docker inspect -f '{{.State.Pid}}' $CONTAINER) pid=$(docker inspect -f '{{.State.Pid}}' $CONTAINER)