やりたいこと
RaspberryPi OSをインストールしたDockerコンテナを用意して、sambaをインストールしてWindows用共有ディレクトリとTimemachine用共有ディレクトリを作る。
手順
1.RaspberryPi OSをインストールした
2.環境構築用のコンテナを準備する
docker create -it --name buildcont01 raspios:0.0.1 /bin/bash
docker start buildcont01
docker attach buildcont01
3.attachしたコンテナ内で諸々最新化する
apt update
apt upgrade
apt autoremove
apt clean
4.attachしたコンテナ内でsambaをインストールする
apt install samba
5.attachしたコンテナ内でsamba共有用のディレクトリを作る
mkdir /data
mkdir /data/share
mkdir /data/timemachine
6.attachしたコンテナ内でsambaの設定
/etc/samba/smb.conf
[global]
vfs objects = catia fruit streams_xattr
fruit:metadata = stream
fruit:encoding = native
workgroup = WORKGROUP
dos charset = CP932
unix charset = UTF-8
server string = raspberry pi samba
netbios name = RaspberryPiNetBiosName
unix password sync = no
security = user
passdb backend = tdbsam
# passwd program = /usr/bin/passwd %u
# passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
# pam password change = yes
map to guest = never
usershare allow guests = no
load printers = no
#### [homes]セクションをすべて削除
#### [printters]セクションをすべて削除
#### [print$]セクションをすべてコメントアウト
[timemachine]
path = /data/timemachine/root
browsable = yes
writable = yes
fruit:time machine = yes
fruit:time machine max size = 2G
[share]
path = /data/share/root
browsable = yes
writable = yes
7.attachしたコンテナ内で設定が間違っていないことを確認
testparm
/sbin/smbd --foreground --no-process-group
これでエラーが出ないことを確認する。
エラーがなければ、一旦attachしたコンテナをexitする。
8.コンテナをimageとして保存する
docker commit buildcont01 raspios_samba:0.0.1
docker rm buildcont01
9.上で保存したimageからコンテナを作って起動する
docker create -t --name sambacont01 -v /data/share/main:/data/share -v /data/timemachine/main:/data/timemachine -p 139:139 -p 445:445 -e LANG=C.UTF-8 -e TZ=Asia/Tokyo raspios_samba:0.0.1 /sbin/smbd --foreground --no-process-group
docker start sambacont01
ちゃんと起動しているか確認
docker exec -it sambacont01 /bin/bash
ps aux
10.上でコンテナでログインした状態でsamba用のユーザを設定
pdbedit -a pi
pdbedit -L