Magnolia Tech

いつもコードのことばかり考えている人のために。

Dockerを使ってSambaサーバを立てる

引き続きThinkCentre M75q Tiny Gen2上にインストールしたUbuntu Serverの環境構築を続けます。

blog.magnolia.tech

メインPCとファイルを共有するためにSambaでファイルサーバを立てることにします。

直接Ubuntu Server上でSambaサーバを立ててしまうと管理が面倒なのでDockerで立てることにします。

Sambaのイメージを選ぶ

ネットを検索するとdperson/sambaというイメージを使って構築する事例がよく出てきますが、残念ながらイメージの更新が止まっているようです。

他のイメージを探したところ、servercontainers/sambaというイメージが見つかりました。

GitHubリポジトリを見たところ、具体的なバージョンを指定するのではなく、定期的にAlpineのイメージを取得してインストールできたSambaのバージョンをもとに、複数のイメージをビルド・アップするところまでが自動化されており、常に最新バージョンがDocker Hubにアップされてます。

github.com

具体的な起動方法は、サンプルのdocker-compose.ymlが提供されているので、こちらをカスタマイズすればOKです。

github.com

環境変数にユーザーを指定しておけば勝手にOS側のユーザーも作り、Samba用の設定までやってくれます。便利ですね。

起動する

docker-compose.ymlをコピーしてきて、ユーザー、グループの指定と、ディレクトリやゲストの許可有無等を指定すれば準備OKです。

      GROUP_family: 1500

      ACCOUNT_alice: alipass
      UID_alice: 1000
      GROUPS_alice: family

      SAMBA_VOLUME_CONFIG_aliceonly: "[Alice Share]; path=/shares/alice; valid users = alice; guest ok = no; read only = no; browseable = yes"

    volumes:
      - ./shares/alice:/shares/alice

起動します。

$ sudo docker compose up

次ははバックアップ運用とか、監視とかを考えていきます。