はじめに

Docker 上の NextCloud で,SMB マウントする方法をメモしておく。

問題点

デフォルトの NextCloud には,samba パッケージが含まれていない。そのため,Dockerfile の時点で samba 関連のパッケージをインストールする必要がある。

Dockerfile

FROM nextcloud:26-apache

RUN apt-get update && \ 
    apt-get install -y libsmbclient-dev smbclient && \
    pecl install smbclient && \
    docker-php-ext-enable smbclient

Compose

volumes:
  nextcloud_app:
  nextcloud_data:
  nextcloud_db:

services:
  db:
    image: mariadb
    container_name: nextcloud_db
    restart: unless-stopped
    volumes:
      - nextcloud_db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${ENV_MYSQL_ROOT_PASSWORD}  
      - MYSQL_PASSWORD=${ENV_MYSQL_PASSWORD}  
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    networks:
      - default

  app:
    build: ./
    container_name: nextcloud_app
    links:
      - db
    volumes:
      - nextcloud_app:/var/www/html
      - nextcloud_data:/var/www/html/data
    environment:
      - MYSQL_PASSWORD=${ENV_MYSQL_PASSWORD}  
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=nextcloud_db
    restart: unless-stopped
    networks:
      - default

参考・関連リンク