feat: Add shared network folder (#157)

This commit is contained in:
Kroese 2024-02-07 23:48:38 +01:00 committed by GitHub
parent 42a5295306
commit 4e9ac3ef37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 78 additions and 3 deletions

View File

@ -9,7 +9,10 @@ RUN apt-get update \
&& apt-get --no-install-recommends -y install \
curl \
7zip \
wsdd \
samba \
wimtools \
dos2unix \
cabextract \
genisoimage \
libxml2-utils \

View File

@ -12,6 +12,7 @@ cd /run
. disk.sh # Initialize disks
. display.sh # Initialize graphics
. network.sh # Initialize network
. samba.sh # Configure samba
. boot.sh # Configure boot
. proc.sh # Initialize processor
. power.sh # Configure shutdown

View File

@ -835,11 +835,16 @@ prepareXP() {
echo "ProductKey=$key"
echo ""
echo "[Identification]"
echo "JoinWorkgroup"
echo "JoinWorkgroup = WORKGROUP"
echo ""
echo "[Networking]"
echo "InstallDefaultComponents=Yes"
echo ""
echo "[URL]"
echo "Home_Page = http://www.google.com"
echo "Search_Page = http://www.google.com/ie_rsearch.html"
echo "AutoConfig = 0"
echo ""
echo "[RegionalSettings]"
echo "Language=00000409"
echo ""

View File

@ -29,8 +29,8 @@ ready() {
if [ -f "$STORAGE/windows.old" ]; then
local last
local bios="Booting from Hard Disk"
last=$(grep "^B.*" "$QEMU_PTY" | tail -1)
local bios="Booting from Hard"
last=$(grep "^Booting.*" "$QEMU_PTY" | tail -1)
if [[ "${last,,}" == "${bios,,}"* ]]; then
return 0
fi
@ -74,6 +74,9 @@ finish() {
pid="/var/run/tpm.pid"
[ -f "$pid" ] && pKill "$(<"$pid")"
fKill "wsdd"
fKill "smbd"
closeNetwork
sleep 0.5

63
src/samba.sh Normal file
View File

@ -0,0 +1,63 @@
#!/usr/bin/env bash
set -Eeuo pipefail
[[ "$DHCP" == [Yy1]* ]] && return 0
SHARE="$STORAGE/shared"
mkdir -p "$SHARE"
chmod -R 777 "$SHARE"
SAMBA="/etc/samba/smb.conf"
{ echo "[global]"
echo " server string = Dockur"
echo " netbios name = dockur"
echo " workgroup = WORKGROUP"
echo " interfaces = dockerbridge"
echo " bind interfaces only = yes"
echo " security = user"
echo " guest account = nobody"
echo " map to guest = Bad User"
echo " server min protocol = SMB2"
echo ""
echo " # disable printing services"
echo " load printers = no"
echo " printing = bsd"
echo " printcap name = /dev/null"
echo " disable spoolss = yes"
echo ""
echo "[Data]"
echo " path = $SHARE"
echo " comment = Shared"
echo " writable = yes"
echo " guest ok = yes"
echo " guest only = yes"
echo " force user = root"
echo " force group = root"
} > "$SAMBA"
{ echo "--------------------------------------------------------"
echo " $APP for Docker v$(</run/version)..."
echo " For support visit $SUPPORT"
echo "--------------------------------------------------------"
echo ""
echo "Using this folder you can share files with the host machine."
echo ""
echo "To change the storage location, include the following bind mount in your compose file:"
echo ""
echo " volumes:"
echo " - \"/home/user/example:/storage/shared\""
echo ""
echo "Or in your run command:"
echo ""
echo " -v \"/home/user/example:/storage/shared\""
echo ""
echo "Replace the example path /home/user/example with the desired storage folder."
echo ""
} | unix2dos > "$SHARE/readme.txt"
smbd -D
wsdd -i dockerbridge -p -n "host.local" &
return 0