Loading .github/workflows/check.yml +3 −3 Original line number Diff line number Diff line on: [workflow_call] name: "shellcheck" name: "Check" permissions: {} jobs: Loading @@ -11,4 +11,4 @@ jobs: - name: Run ShellCheck uses: ludeeus/action-shellcheck@master env: SHELLCHECK_OPTS: -e SC2001 -e SC2002 -e SC2116 -e SC2034 -e SC1091 -e SC2143 -e SC2223 -e SC2086 -e SC2145 -e SC2015 -e SC2268 -e SC2207 -e SC2064 -e SC2162 -e SC2153 -e SC2166 SHELLCHECK_OPTS: -x -e SC2002 -e SC2223 -e SC2034 -e SC2064 agent/agent.sh +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ function downloadUpdate { [[ "$remote_size" == "" || "$remote_size" == "0" ]] && return SCRIPT=$(readlink -f ${BASH_SOURCE[0]}) SCRIPT=$(readlink -f "${BASH_SOURCE[0]}") local_size=$(stat -c%s "$SCRIPT") [[ remote_size -eq local_size ]] && return Loading run/install.sh +30 −30 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ set -eu DL="https://global.synologydownload.com/download/DSM" if [ -z $URL ]; then if [ -z "$URL" ]; then URL="$DL/beta/7.2/64216/DSM_VirtualDSM_64216.pat" #URL="$DL/release/7.0.1/42218/DSM_VirtualDSM_42218.pat" Loading @@ -25,7 +25,7 @@ echo "Install: Downloading extractor..." TMP="$STORAGE/tmp" RD="$TMP/rd.gz" rm -rf $TMP && mkdir -p $TMP rm -rf "$TMP" && mkdir -p "$TMP" LOC="$DL/release/7.0.1/42218/DSM_VirtualDSM_42218.pat" Loading @@ -33,15 +33,15 @@ if ! curl -r 64493568-69886247 -sfk -o "$RD" "$LOC"; then echo "Failed to download extractor, code: $?" && exit 60 fi SUM=$(md5sum $RD | cut -f 1 -d " ") SUM=$(md5sum "$RD" | cut -f 1 -d " ") if [ $SUM != "14fb88cb7cabddb5af1d0269bf032845" ]; then if [ "$SUM" != "14fb88cb7cabddb5af1d0269bf032845" ]; then echo "Invalid extractor, checksum failed." && exit 61 fi set +e xz -dc <$RD >$TMP/rd 2>/dev/null (cd $TMP && cpio -idm <$TMP/rd 2>/dev/null) xz -dc <"$RD" >"$TMP/rd" 2>/dev/null (cd "$TMP" && cpio -idm <"$TMP/rd" 2>/dev/null) set -e mkdir -p /run/extract Loading @@ -52,9 +52,9 @@ done mv /run/extract/scemd /run/extract/syno_extract_system_patch chmod +x /run/extract/syno_extract_system_patch rm -rf $TMP && mkdir -p $TMP rm -rf "$TMP" && mkdir -p "$TMP" echo "Install: Downloading $(basename $URL)..." echo "Install: Downloading $(basename "$URL")..." PAT="/$BASE.pat" rm -f "$PAT" Loading @@ -77,10 +77,10 @@ fi echo "Install: Extracting downloaded image..." if { tar tf "$PAT"; } >/dev/null 2>&1; then tar xpf $PAT -C $TMP/. tar xpf "$PAT" -C "$TMP/." else export LD_LIBRARY_PATH="/run/extract" if ! /run/extract/syno_extract_system_patch $PAT $TMP/. ; then if ! /run/extract/syno_extract_system_patch "$PAT" "$TMP/." ; then echo "Invalid PAT file: File is an update pack which contains no OS image." && exit 63 fi export LD_LIBRARY_PATH="" Loading @@ -96,12 +96,12 @@ HDP="$TMP/synohdpack_img" [ ! -f "$IDB.txz" ] && echo "Invalid PAT file: contains no IndexDB." && exit 66 [ ! -d "$PKG" ] && echo "Invalid PAT file: contains no packages." && exit 68 BOOT=$(find $TMP -name "*.bin.zip") BOOT=$(find "$TMP" -name "*.bin.zip") [ ! -f "$BOOT" ] && echo "Invalid PAT file: contains no boot file." && exit 67 BOOT=$(echo "$BOOT" | head -c -5) unzip -q -o "$BOOT".zip -d $TMP unzip -q -o "$BOOT".zip -d "$TMP" [ "$ALLOCATE" != "Z" ] && echo "Install: Allocating diskspace..." Loading Loading @@ -150,37 +150,37 @@ PART="$TMP/partition.fdisk" echo "" echo "${SYSTEM}1 : start= 2048, size= 4980480, type=83" echo "${SYSTEM}2 : start= 4982528, size= 4194304, type=82" } > $PART } > "$PART" sfdisk -q $SYSTEM < $PART sfdisk -q "$SYSTEM" < "$PART" echo "Install: Extracting system partition..." MOUNT="$TMP/system" rm -rf $MOUNT && mkdir -p $MOUNT rm -rf "$MOUNT" && mkdir -p "$MOUNT" mv -f $HDA.tgz $HDA.txz mv -f "$HDA.tgz" "$HDA.txz" tar xpfJ $HDP.txz --absolute-names -C $MOUNT/ tar xpfJ $HDA.txz --absolute-names -C $MOUNT/ tar xpfJ $IDB.txz --absolute-names -C $MOUNT/usr/syno/synoman/indexdb/ tar xpfJ "$HDP.txz" --absolute-names -C "$MOUNT/" tar xpfJ "$HDA.txz" --absolute-names -C "$MOUNT/" tar xpfJ "$IDB.txz" --absolute-names -C "$MOUNT/usr/syno/synoman/indexdb/" # Install Agent LOC="$MOUNT/usr/local" mkdir -p $LOC mv $PKG/ $LOC/ mkdir -p "$LOC" mv "$PKG/" "$LOC/" LOC="$MOUNT/usr/local/bin" mkdir -p $LOC cp /agent/agent.sh $LOC/agent.sh chmod 755 $LOC/agent.sh mkdir -p "$LOC" cp /agent/agent.sh "$LOC/agent.sh" chmod 755 "$LOC/agent.sh" LOC="$MOUNT/usr/local/etc/rc.d" mkdir -p $LOC cp /agent/service.sh $LOC/agent.sh chmod 755 $LOC/agent.sh mkdir -p "$LOC" cp /agent/service.sh "$LOC/agent.sh" chmod 755 "$LOC/agent.sh" # Store agent version echo "7" > "$STORAGE"/"$BASE".agent Loading @@ -191,13 +191,13 @@ LABEL="1.44.1-42218" OFFSET="1048576" # 2048 * 512 NUMBLOCKS="622560" # (4980480 * 512) / 4096 mke2fs -q -t ext4 -b 4096 -d $MOUNT/ -L $LABEL -F -E offset=$OFFSET $SYSTEM $NUMBLOCKS mke2fs -q -t ext4 -b 4096 -d "$MOUNT/" -L "$LABEL" -F -E "offset=$OFFSET" "$SYSTEM" "$NUMBLOCKS" rm -rf $MOUNT rm -rf "$MOUNT" echo "$BASE" > "$STORAGE"/dsm.ver mv -f "$PAT" "$STORAGE"/"$BASE".pat mv -f "$BOOT" "$STORAGE"/"$BASE".boot.img mv -f "$SYSTEM" "$STORAGE"/"$BASE".system.img rm -rf $TMP rm -rf "$TMP" run/network.sh +18 −18 Original line number Diff line number Diff line Loading @@ -29,16 +29,16 @@ configureDHCP() { echo "docker variable to your container: --device=/dev/vhost-net" && exit 85 fi VM_NET_TAP="_VmMacvtap" VM_NET_TAP="dsm" echo "Info: Retrieving IP via DHCP using MAC ${VM_NET_MAC}..." ip l add link eth0 name ${VM_NET_TAP} address ${VM_NET_MAC} type macvtap mode bridge || true ip l set ${VM_NET_TAP} up ip l add link eth0 name "${VM_NET_TAP}" address "${VM_NET_MAC}" type macvtap mode bridge || true ip l set "${VM_NET_TAP}" up ip a flush eth0 ip a flush ${VM_NET_TAP} ip a flush "${VM_NET_TAP}" DHCP_IP=$( dhclient -v ${VM_NET_TAP} 2>&1 | grep ^bound | cut -d' ' -f3 ) DHCP_IP=$( dhclient -v "${VM_NET_TAP}" 2>&1 | grep ^bound | cut -d' ' -f3 ) if [[ "${DHCP_IP}" == [0-9.]* ]]; then echo "Info: Retrieved IP ${DHCP_IP} via DHCP" Loading @@ -46,26 +46,26 @@ configureDHCP() { echo "ERROR: Cannot retrieve IP from DHCP using MAC ${VM_NET_MAC}" && exit 16 fi ip a flush ${VM_NET_TAP} ip a flush "${VM_NET_TAP}" TAP_PATH="/dev/tap$(</sys/class/net/${VM_NET_TAP}/ifindex)" # create dev file (there is no udev in container: need to be done manually) IFS=: read MAJOR MINOR < <(cat /sys/devices/virtual/net/${VM_NET_TAP}/tap*/dev) IFS=: read -r MAJOR MINOR < <(cat "/sys/devices/virtual/net/${VM_NET_TAP}/tap*/dev") if (( MAJOR < 1)); then echo "ERROR: Cannot find: sys/devices/virtual/net/${VM_NET_TAP}" && exit 18 fi [[ ! -e ${TAP_PATH} ]] && [[ -e /dev0/${TAP_PATH##*/} ]] && ln -s /dev0/${TAP_PATH##*/} ${TAP_PATH} [[ ! -e "${TAP_PATH}" ]] && [[ -e "/dev0/${TAP_PATH##*/}" ]] && ln -s "/dev0/${TAP_PATH##*/}" "${TAP_PATH}" if [[ ! -e ${TAP_PATH} ]]; then if ! mknod ${TAP_PATH} c $MAJOR $MINOR ; then if [[ ! -e "${TAP_PATH}" ]]; then if ! mknod "${TAP_PATH}" c "$MAJOR" "$MINOR" ; then echo "ERROR: Cannot mknod: ${TAP_PATH}" && exit 20 fi fi if ! exec 30>>$TAP_PATH; then if ! exec 30>>"$TAP_PATH"; then echo -n "ERROR: Please add the following docker variables to your container: " echo "--device=/dev/vhost-net --device-cgroup-rule='c ${MAJOR}:* rwm'" && exit 21 fi Loading Loading @@ -113,21 +113,21 @@ configureNAT () { NET_OPTS="-netdev tap,ifname=${VM_NET_TAP},script=no,downscript=no,id=hostnet0" # Build DNS options from container /etc/resolv.conf nameservers=($(grep '^nameserver' /etc/resolv.conf | sed 's/nameserver //')) mapfile -t nameservers < <(grep '^nameserver' /etc/resolv.conf | sed 's/nameserver //') searchdomains=$(grep '^search' /etc/resolv.conf | sed 's/search //' | sed 's/ /,/g') domainname=$(echo $searchdomains | awk -F"," '{print $1}') domainname=$(echo "$searchdomains" | awk -F"," '{print $1}') for nameserver in "${nameservers[@]}"; do if ! [[ $nameserver =~ .*:.* ]]; then [[ -z $DNS_SERVERS ]] && DNS_SERVERS=$nameserver || DNS_SERVERS="$DNS_SERVERS,$nameserver" if ! [[ "$nameserver" =~ .*:.* ]]; then [[ -z "$DNS_SERVERS" ]] && DNS_SERVERS="$nameserver" || DNS_SERVERS="$DNS_SERVERS,$nameserver" fi done [[ -z $DNS_SERVERS ]] && DNS_SERVERS="1.1.1.1" [[ -z "$DNS_SERVERS" ]] && DNS_SERVERS="1.1.1.1" DNSMASQ_OPTS="$DNSMASQ_OPTS --dhcp-option=option:dns-server,$DNS_SERVERS --dhcp-option=option:router,${VM_NET_IP%.*}.1" if [ -n "$searchdomains" -a "$searchdomains" != "." ]; then if [ -n "$searchdomains" ] && [ "$searchdomains" != "." ]; then DNSMASQ_OPTS="$DNSMASQ_OPTS --dhcp-option=option:domain-search,$searchdomains --dhcp-option=option:domain-name,$domainname" else [[ -z $(hostname -d) ]] || DNSMASQ_OPTS="$DNSMASQ_OPTS --dhcp-option=option:domain-name,$(hostname -d)" Loading @@ -135,7 +135,7 @@ configureNAT () { [ "$DEBUG" = "Y" ] && echo && echo "$DNSMASQ $DNSMASQ_OPTS" $DNSMASQ $DNSMASQ_OPTS "$DNSMASQ $DNSMASQ_OPTS" } # ###################################### Loading run/run.sh +5 −5 Original line number Diff line number Diff line Loading @@ -6,9 +6,9 @@ set -eu : ${URL:=''}. # URL of PAT file : ${DEBUG:=''}. # Enable debug mode : ${ALLOCATE:='Y'} # Preallocate diskspace : ${CPU_CORES:='1'} # vCPU count : ${DISK_SIZE:='16G'} # Initial disk size : ${RAM_SIZE:='512M'} # Amount of RAM : ${CPU_CORES:='1'} # Amount of CPU cores : ${DISK_SIZE:='16G'} # Initial data disk size : ${RAM_SIZE:='512M'} # Maximum RAM amount echo "Starting Virtual DSM for Docker v${VERSION}..." Loading Loading @@ -44,7 +44,7 @@ fi KVM_OPTS="" if [ -e /dev/kvm ] && sh -c 'echo -n > /dev/kvm' &> /dev/null; then if [[ $(grep -e vmx -e svm /proc/cpuinfo) ]]; then if grep -q -e vmx -e svm /proc/cpuinfo; then KVM_OPTS=",accel=kvm -enable-kvm -cpu host" fi fi Loading @@ -63,7 +63,7 @@ ARGS="${DEF_OPTS} ${CPU_OPTS} ${RAM_OPTS} ${KVM_OPTS} ${MON_OPTS} ${SERIAL_OPTS} set -m ( qemu-system-x86_64 ${ARGS} & echo $! > ${_QEMU_PID} qemu-system-x86_64 "${ARGS}" & echo $! > ${_QEMU_PID} ) set +m Loading Loading
.github/workflows/check.yml +3 −3 Original line number Diff line number Diff line on: [workflow_call] name: "shellcheck" name: "Check" permissions: {} jobs: Loading @@ -11,4 +11,4 @@ jobs: - name: Run ShellCheck uses: ludeeus/action-shellcheck@master env: SHELLCHECK_OPTS: -e SC2001 -e SC2002 -e SC2116 -e SC2034 -e SC1091 -e SC2143 -e SC2223 -e SC2086 -e SC2145 -e SC2015 -e SC2268 -e SC2207 -e SC2064 -e SC2162 -e SC2153 -e SC2166 SHELLCHECK_OPTS: -x -e SC2002 -e SC2223 -e SC2034 -e SC2064
agent/agent.sh +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ function downloadUpdate { [[ "$remote_size" == "" || "$remote_size" == "0" ]] && return SCRIPT=$(readlink -f ${BASH_SOURCE[0]}) SCRIPT=$(readlink -f "${BASH_SOURCE[0]}") local_size=$(stat -c%s "$SCRIPT") [[ remote_size -eq local_size ]] && return Loading
run/install.sh +30 −30 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ set -eu DL="https://global.synologydownload.com/download/DSM" if [ -z $URL ]; then if [ -z "$URL" ]; then URL="$DL/beta/7.2/64216/DSM_VirtualDSM_64216.pat" #URL="$DL/release/7.0.1/42218/DSM_VirtualDSM_42218.pat" Loading @@ -25,7 +25,7 @@ echo "Install: Downloading extractor..." TMP="$STORAGE/tmp" RD="$TMP/rd.gz" rm -rf $TMP && mkdir -p $TMP rm -rf "$TMP" && mkdir -p "$TMP" LOC="$DL/release/7.0.1/42218/DSM_VirtualDSM_42218.pat" Loading @@ -33,15 +33,15 @@ if ! curl -r 64493568-69886247 -sfk -o "$RD" "$LOC"; then echo "Failed to download extractor, code: $?" && exit 60 fi SUM=$(md5sum $RD | cut -f 1 -d " ") SUM=$(md5sum "$RD" | cut -f 1 -d " ") if [ $SUM != "14fb88cb7cabddb5af1d0269bf032845" ]; then if [ "$SUM" != "14fb88cb7cabddb5af1d0269bf032845" ]; then echo "Invalid extractor, checksum failed." && exit 61 fi set +e xz -dc <$RD >$TMP/rd 2>/dev/null (cd $TMP && cpio -idm <$TMP/rd 2>/dev/null) xz -dc <"$RD" >"$TMP/rd" 2>/dev/null (cd "$TMP" && cpio -idm <"$TMP/rd" 2>/dev/null) set -e mkdir -p /run/extract Loading @@ -52,9 +52,9 @@ done mv /run/extract/scemd /run/extract/syno_extract_system_patch chmod +x /run/extract/syno_extract_system_patch rm -rf $TMP && mkdir -p $TMP rm -rf "$TMP" && mkdir -p "$TMP" echo "Install: Downloading $(basename $URL)..." echo "Install: Downloading $(basename "$URL")..." PAT="/$BASE.pat" rm -f "$PAT" Loading @@ -77,10 +77,10 @@ fi echo "Install: Extracting downloaded image..." if { tar tf "$PAT"; } >/dev/null 2>&1; then tar xpf $PAT -C $TMP/. tar xpf "$PAT" -C "$TMP/." else export LD_LIBRARY_PATH="/run/extract" if ! /run/extract/syno_extract_system_patch $PAT $TMP/. ; then if ! /run/extract/syno_extract_system_patch "$PAT" "$TMP/." ; then echo "Invalid PAT file: File is an update pack which contains no OS image." && exit 63 fi export LD_LIBRARY_PATH="" Loading @@ -96,12 +96,12 @@ HDP="$TMP/synohdpack_img" [ ! -f "$IDB.txz" ] && echo "Invalid PAT file: contains no IndexDB." && exit 66 [ ! -d "$PKG" ] && echo "Invalid PAT file: contains no packages." && exit 68 BOOT=$(find $TMP -name "*.bin.zip") BOOT=$(find "$TMP" -name "*.bin.zip") [ ! -f "$BOOT" ] && echo "Invalid PAT file: contains no boot file." && exit 67 BOOT=$(echo "$BOOT" | head -c -5) unzip -q -o "$BOOT".zip -d $TMP unzip -q -o "$BOOT".zip -d "$TMP" [ "$ALLOCATE" != "Z" ] && echo "Install: Allocating diskspace..." Loading Loading @@ -150,37 +150,37 @@ PART="$TMP/partition.fdisk" echo "" echo "${SYSTEM}1 : start= 2048, size= 4980480, type=83" echo "${SYSTEM}2 : start= 4982528, size= 4194304, type=82" } > $PART } > "$PART" sfdisk -q $SYSTEM < $PART sfdisk -q "$SYSTEM" < "$PART" echo "Install: Extracting system partition..." MOUNT="$TMP/system" rm -rf $MOUNT && mkdir -p $MOUNT rm -rf "$MOUNT" && mkdir -p "$MOUNT" mv -f $HDA.tgz $HDA.txz mv -f "$HDA.tgz" "$HDA.txz" tar xpfJ $HDP.txz --absolute-names -C $MOUNT/ tar xpfJ $HDA.txz --absolute-names -C $MOUNT/ tar xpfJ $IDB.txz --absolute-names -C $MOUNT/usr/syno/synoman/indexdb/ tar xpfJ "$HDP.txz" --absolute-names -C "$MOUNT/" tar xpfJ "$HDA.txz" --absolute-names -C "$MOUNT/" tar xpfJ "$IDB.txz" --absolute-names -C "$MOUNT/usr/syno/synoman/indexdb/" # Install Agent LOC="$MOUNT/usr/local" mkdir -p $LOC mv $PKG/ $LOC/ mkdir -p "$LOC" mv "$PKG/" "$LOC/" LOC="$MOUNT/usr/local/bin" mkdir -p $LOC cp /agent/agent.sh $LOC/agent.sh chmod 755 $LOC/agent.sh mkdir -p "$LOC" cp /agent/agent.sh "$LOC/agent.sh" chmod 755 "$LOC/agent.sh" LOC="$MOUNT/usr/local/etc/rc.d" mkdir -p $LOC cp /agent/service.sh $LOC/agent.sh chmod 755 $LOC/agent.sh mkdir -p "$LOC" cp /agent/service.sh "$LOC/agent.sh" chmod 755 "$LOC/agent.sh" # Store agent version echo "7" > "$STORAGE"/"$BASE".agent Loading @@ -191,13 +191,13 @@ LABEL="1.44.1-42218" OFFSET="1048576" # 2048 * 512 NUMBLOCKS="622560" # (4980480 * 512) / 4096 mke2fs -q -t ext4 -b 4096 -d $MOUNT/ -L $LABEL -F -E offset=$OFFSET $SYSTEM $NUMBLOCKS mke2fs -q -t ext4 -b 4096 -d "$MOUNT/" -L "$LABEL" -F -E "offset=$OFFSET" "$SYSTEM" "$NUMBLOCKS" rm -rf $MOUNT rm -rf "$MOUNT" echo "$BASE" > "$STORAGE"/dsm.ver mv -f "$PAT" "$STORAGE"/"$BASE".pat mv -f "$BOOT" "$STORAGE"/"$BASE".boot.img mv -f "$SYSTEM" "$STORAGE"/"$BASE".system.img rm -rf $TMP rm -rf "$TMP"
run/network.sh +18 −18 Original line number Diff line number Diff line Loading @@ -29,16 +29,16 @@ configureDHCP() { echo "docker variable to your container: --device=/dev/vhost-net" && exit 85 fi VM_NET_TAP="_VmMacvtap" VM_NET_TAP="dsm" echo "Info: Retrieving IP via DHCP using MAC ${VM_NET_MAC}..." ip l add link eth0 name ${VM_NET_TAP} address ${VM_NET_MAC} type macvtap mode bridge || true ip l set ${VM_NET_TAP} up ip l add link eth0 name "${VM_NET_TAP}" address "${VM_NET_MAC}" type macvtap mode bridge || true ip l set "${VM_NET_TAP}" up ip a flush eth0 ip a flush ${VM_NET_TAP} ip a flush "${VM_NET_TAP}" DHCP_IP=$( dhclient -v ${VM_NET_TAP} 2>&1 | grep ^bound | cut -d' ' -f3 ) DHCP_IP=$( dhclient -v "${VM_NET_TAP}" 2>&1 | grep ^bound | cut -d' ' -f3 ) if [[ "${DHCP_IP}" == [0-9.]* ]]; then echo "Info: Retrieved IP ${DHCP_IP} via DHCP" Loading @@ -46,26 +46,26 @@ configureDHCP() { echo "ERROR: Cannot retrieve IP from DHCP using MAC ${VM_NET_MAC}" && exit 16 fi ip a flush ${VM_NET_TAP} ip a flush "${VM_NET_TAP}" TAP_PATH="/dev/tap$(</sys/class/net/${VM_NET_TAP}/ifindex)" # create dev file (there is no udev in container: need to be done manually) IFS=: read MAJOR MINOR < <(cat /sys/devices/virtual/net/${VM_NET_TAP}/tap*/dev) IFS=: read -r MAJOR MINOR < <(cat "/sys/devices/virtual/net/${VM_NET_TAP}/tap*/dev") if (( MAJOR < 1)); then echo "ERROR: Cannot find: sys/devices/virtual/net/${VM_NET_TAP}" && exit 18 fi [[ ! -e ${TAP_PATH} ]] && [[ -e /dev0/${TAP_PATH##*/} ]] && ln -s /dev0/${TAP_PATH##*/} ${TAP_PATH} [[ ! -e "${TAP_PATH}" ]] && [[ -e "/dev0/${TAP_PATH##*/}" ]] && ln -s "/dev0/${TAP_PATH##*/}" "${TAP_PATH}" if [[ ! -e ${TAP_PATH} ]]; then if ! mknod ${TAP_PATH} c $MAJOR $MINOR ; then if [[ ! -e "${TAP_PATH}" ]]; then if ! mknod "${TAP_PATH}" c "$MAJOR" "$MINOR" ; then echo "ERROR: Cannot mknod: ${TAP_PATH}" && exit 20 fi fi if ! exec 30>>$TAP_PATH; then if ! exec 30>>"$TAP_PATH"; then echo -n "ERROR: Please add the following docker variables to your container: " echo "--device=/dev/vhost-net --device-cgroup-rule='c ${MAJOR}:* rwm'" && exit 21 fi Loading Loading @@ -113,21 +113,21 @@ configureNAT () { NET_OPTS="-netdev tap,ifname=${VM_NET_TAP},script=no,downscript=no,id=hostnet0" # Build DNS options from container /etc/resolv.conf nameservers=($(grep '^nameserver' /etc/resolv.conf | sed 's/nameserver //')) mapfile -t nameservers < <(grep '^nameserver' /etc/resolv.conf | sed 's/nameserver //') searchdomains=$(grep '^search' /etc/resolv.conf | sed 's/search //' | sed 's/ /,/g') domainname=$(echo $searchdomains | awk -F"," '{print $1}') domainname=$(echo "$searchdomains" | awk -F"," '{print $1}') for nameserver in "${nameservers[@]}"; do if ! [[ $nameserver =~ .*:.* ]]; then [[ -z $DNS_SERVERS ]] && DNS_SERVERS=$nameserver || DNS_SERVERS="$DNS_SERVERS,$nameserver" if ! [[ "$nameserver" =~ .*:.* ]]; then [[ -z "$DNS_SERVERS" ]] && DNS_SERVERS="$nameserver" || DNS_SERVERS="$DNS_SERVERS,$nameserver" fi done [[ -z $DNS_SERVERS ]] && DNS_SERVERS="1.1.1.1" [[ -z "$DNS_SERVERS" ]] && DNS_SERVERS="1.1.1.1" DNSMASQ_OPTS="$DNSMASQ_OPTS --dhcp-option=option:dns-server,$DNS_SERVERS --dhcp-option=option:router,${VM_NET_IP%.*}.1" if [ -n "$searchdomains" -a "$searchdomains" != "." ]; then if [ -n "$searchdomains" ] && [ "$searchdomains" != "." ]; then DNSMASQ_OPTS="$DNSMASQ_OPTS --dhcp-option=option:domain-search,$searchdomains --dhcp-option=option:domain-name,$domainname" else [[ -z $(hostname -d) ]] || DNSMASQ_OPTS="$DNSMASQ_OPTS --dhcp-option=option:domain-name,$(hostname -d)" Loading @@ -135,7 +135,7 @@ configureNAT () { [ "$DEBUG" = "Y" ] && echo && echo "$DNSMASQ $DNSMASQ_OPTS" $DNSMASQ $DNSMASQ_OPTS "$DNSMASQ $DNSMASQ_OPTS" } # ###################################### Loading
run/run.sh +5 −5 Original line number Diff line number Diff line Loading @@ -6,9 +6,9 @@ set -eu : ${URL:=''}. # URL of PAT file : ${DEBUG:=''}. # Enable debug mode : ${ALLOCATE:='Y'} # Preallocate diskspace : ${CPU_CORES:='1'} # vCPU count : ${DISK_SIZE:='16G'} # Initial disk size : ${RAM_SIZE:='512M'} # Amount of RAM : ${CPU_CORES:='1'} # Amount of CPU cores : ${DISK_SIZE:='16G'} # Initial data disk size : ${RAM_SIZE:='512M'} # Maximum RAM amount echo "Starting Virtual DSM for Docker v${VERSION}..." Loading Loading @@ -44,7 +44,7 @@ fi KVM_OPTS="" if [ -e /dev/kvm ] && sh -c 'echo -n > /dev/kvm' &> /dev/null; then if [[ $(grep -e vmx -e svm /proc/cpuinfo) ]]; then if grep -q -e vmx -e svm /proc/cpuinfo; then KVM_OPTS=",accel=kvm -enable-kvm -cpu host" fi fi Loading @@ -63,7 +63,7 @@ ARGS="${DEF_OPTS} ${CPU_OPTS} ${RAM_OPTS} ${KVM_OPTS} ${MON_OPTS} ${SERIAL_OPTS} set -m ( qemu-system-x86_64 ${ARGS} & echo $! > ${_QEMU_PID} qemu-system-x86_64 "${ARGS}" & echo $! > ${_QEMU_PID} ) set +m Loading