Sign inSign up

gameplayer8/samba-full

By gameplayer8

•Updated about 1 year ago

A forked version of Samba docker compose with some stack-like patches to include wsdd, avahi etc.

Image
0

4.3K

gameplayer8/samba-full repository overview

XaviaMa Codeberg Build TransRights Enbyware License Version Size Pulls

Docker container of Samba⁠, Avahi⁠ and WSDD⁠, an implementation of the Windows SMB networking protocol.

⁠Usage 🐳

⁠Via Docker Compose:
services:
  samba:
    restart: always
    build: .
    image: gameplayer8/samba-full
    container_name: samba
    environment:
      NAME: "Data"
      USER: "samba"
      PASS: "secret"
      RW: true      # Optional, default true
      UID: 1000    # Optional, default 1000
      GID: 1000    # Optional, default 1000
      AVAHI: "1"    # Optional, Enabled by default
      WSDD: "1"    # Optional, Enabled by default
      WSDD_OPTS: "-i 0.0.0.0 -i ::/0" # Optional, default value
      DAEMON_LIST: "smbd nmbd winbindd" # Optional, default value
    # You can comment the ports section if using networking mode = host
    ports:
      - 135:135/tcp # Optional, nmbd
      - 137:137/udp
      - 138:138/udp
      - 139:139/tcp
      - 445:445/tcp
      - 3702:3702/udp # Optional, WSDD
      - 5353:5353/udp # Optional, Avahi
      - 5353:5353/tcp # Optional, Avahi
      - 5357:5357/tcp # Optional, WSDD
      - 5358:5358/tcp # Optional, WSDD
    volumes:
      - ./samba:/storage
    network_mode: "host" # For better service discovery if you're not running route reflector on the host
⁠Via Docker CLI:
docker run -it --rm --name samba -p 445:445 -e "USER=samba" -e "PASS=secret" -v "${PWD:-.}/samba:/storage" gameplayer8/samba-full

⁠Configuration ⚙️

⁠How do I choose the location of the shared folder?

To change the location of the shared folder, include the following bind mount in your compose file:

volumes:
  - ./samba:/storage

Replace the example path ./samba with the desired folder or named volume.

⁠How do I modify the display name of the shared folder?

You can change the display name of the shared folder by adding the following environment variable:

environment:
  NAME: "Data"
⁠How do I connect to the shared folder?

To connect to the shared folder enter: \\192.168.0.2\Data in Windows Explorer.

Note

Replace the example IP address above with that of your host.
⁠How do I modify the default credentials?

You can set the USER and PASS environment variables to modify the credentials from their default values: user samba with password secret.

environment:
  USER: "samba"
  PASS: "secret"
⁠How do I modify the permissions?

You can set UID and GID environment variables to change the user and group ID.

environment:
  UID: "1002"
  GID: "1005"

To mark the share as read-only, add the variable RW: "false".

⁠How do I modify other settings?

If you need more advanced features, you can completely override the default configuration by modifying the smb.conf⁠ file in this repo, and binding your custom config to the container like this:

volumes:
  - ./smb.conf:/etc/samba/smb.conf
⁠How do I configure multiple users?

If you want to configure multiple users, you can bind the users.conf⁠ file to the container as follows:

volumes:
  - ./users.conf:/etc/samba/users.conf

Each line inside that file contains a : separated list of attributes describing the user to be created.

username:UID:groupname:GID:password:homedir

where:

  • username The textual name of the user.
  • UID The numerical id of the user.
  • groupname The textual name of the primary user group.
  • GID The numerical id of the primary user group.
  • password The clear text password of the user. The password can not contain :,\n or \r.
  • homedir Optional field for setting the home directory of the user.

⁠Stars 🌟

Stars

Tag summary

Content type

Image

Digest

sha256:e26f64b86…

Size

38.9 MB

Last updated

about 1 year ago

docker pull gameplayer8/samba-full