mattie112

Members
  • Posts

    350
  • Joined

  • Last visited

  • Days Won

    1

Report Comments posted by mattie112

  1. On 9/24/2023 at 2:38 PM, maximushugus said:

    The command above is in two lines. You have to stop docker before modifying the file et restart after

     

    Ok so just to be sure:

     

      # add or remove custom network
      for NETWORK in $INCLUDE; do
        if [[ ! $DOCKER_CUSTOM_NETWORKS =~ "$NETWORK " ]]; then
          # automatic assignment
          AUTO=${NETWORK/./_}
          AUTO=DOCKER_AUTO_${AUTO^^}
          if [[ ${!AUTO} == no ]]; then
            [[ $NETWORKS =~ "$NETWORK " ]] && docker network rm $NETWORK >/dev/null
            continue
          fi
          # add auto defined networks
          SUBNET=; GATEWAY=; SERVER=; RANGE=;
          IPV4=$(ip -br -4 addr show $NETWORK|awk '{print $3;exit}')
          if [[ -n $IPV4 ]]; then
            SUBNET=$(ip -4 route show $IPV4 dev $NETWORK|awk '{print $1;exit}')
            SERVER=${IPV4%/*}
            DHCP=${NETWORK/./_}
            DHCP=DOCKER_DHCP_${DHCP^^}
            RANGE=${!DHCP}
            GATEWAY=$(ip -4 route show default dev $NETWORK|awk '{print $3;exit}')
          fi
          SUBNET6=; GATEWAY6=; SERVER6=; RANGE6=;
    #      IPV6=$(min6 $(max6 $(wipe $(ip -br -6 addr show $NETWORK scope global|awk '{$2="";print;exit}'))|sort|head -1))\
          IPV6=$(ip -6 addr show $NETWORK mngtmpaddr|awk '/^ +inet6 /{print $2;exit}')
          [[ -z $IPV6 ]] && IPV6=$(ip -6 addr show $NETWORK scope global permanent|awk '/^ +inet6 /{print $2;exit}'
          if [[ -n $IPV6 ]]; then
            # get IPV6 subnet, preset to /64 if single host address is given
            [[ ${IPV6#*/} == 128 ]] && SUBNET6=$(echo $IPV6|sed -r 's/^([^:]+):([^:]+):([^:]+):([^:]+).*$/\1:\2:\3:\4::\/64/') || SUBNET6=$(ip -6 route show $IPV6 dev $NETWORK|awk '{print $1;exit}')
            SERVER6=${IPV6%/*}
            DHCP6=${NETWORK/./_}
            DHCP6=DOCKER_DHCP6_${DHCP6^^}
            RANGE6=${!DHCP6}
            GATEWAY6=$(ip -6 route show default dev $NETWORK|awk '{print $3;exit}')
            # replace link local address for first address in subnet
            [[ ${GATEWAY6:0:4} == fe80 ]] && GATEWAY6=${SUBNET6%/*}1
          fi
        else
          # add user defined networks
          IPV4=; IPV6=;
    

     

    I have commented the original line and then added your 2 lines. However when I start docker I get:

     

    root@Tower:~# /etc/rc.d/rc.docker start
    /etc/rc.d/rc.docker: line 364: syntax error near unexpected token `else'
    /etc/rc.d/rc.docker: line 364: `    else'
    

     

    So that is really strange?

     

    edit:

    Ah I see it now, the 2nd line is missing a `)` at the end. I have added that and will try IPv6 again :)

  2. On 9/14/2023 at 10:03 PM, maximushugus said:

    I upgraded yesterday from unraid 6.11.5 to 6.12.4 (so I cannot say from when 6.12 version this problem starts), and I'm also impacted by this bug.

    I managed to fix it by :

     

    1) Stopping docker service

    2) Modifying /usr/locale/etc/rc.d/rc.docker file :

    at line 350 from :

    IPV6=$(min6 $(max6 $(wipe $(ip -br -6 addr show $NETWORK scope global|awk '{$2="";print;exit}'))|sort|head -1))
    

    to

    IPV6=$(ip -6 addr show $NETWORK mngtmpaddr|awk '/^ +inet6 /{print $2;exit}')
    [[ -z $IPV6 ]] && IPV6=$(ip -6 addr show $NETWORK scope global permanent|awk '/^ +inet6 /{print $2;exit}'

    3) Restarting the docker service

     

    But I hope there will be a fix from unraid in future version !

     

    Should that be on one line?

    root@Tower:~# /etc/rc.d/rc.docker start
    /etc/rc.d/rc.docker: line 366: syntax error near unexpected token `else'
    /etc/rc.d/rc.docker: line 366: `    else'
    

    It goes wrong on a different line. Or should it also contain an if; then?

  3. I also posted about this on: https://forums.unraid.net/topic/110395-docker-host-network-access-not-working-after-hard-reboot/?do=findComment&comment=1302630

     

    edit: for my only using an ipv4 address for the container does not seem to work

     

    edit2: it does work after making some change to the container (e.g. re-creating it)

     

    Will wait for a day then rollback as only ipv4 is not an option for me (to much stuff to change)