FROM alpine:3.20

ARG SMB_PASSWORD=govoplan-smb

RUN apk add --no-cache samba-server samba-common-tools \
  && addgroup -S -g 1000 govoplan \
  && adduser -S -D -H -h /nonexistent -s /sbin/nologin -u 1000 -G govoplan govoplan \
  && mkdir -p /storage /var/lib/samba/private /var/cache/samba /run/samba /etc/samba /var/log/samba/cores \
  && printf '%s\n' \
    '[global]' \
    '   passdb backend = tdbsam' \
    '   private dir = /var/lib/samba/private' \
    '   lock directory = /run/samba' \
    '   state directory = /var/lib/samba' \
    '   cache directory = /var/cache/samba' \
    '   pid directory = /run/samba' \
    > /etc/samba/smb.conf \
  && printf '%s\n%s\n' "$SMB_PASSWORD" "$SMB_PASSWORD" | smbpasswd -s -a govoplan \
  && smbpasswd -e govoplan \
  && chown -R govoplan:govoplan /storage /var/lib/samba /var/cache/samba /run/samba /etc/samba /var/log/samba

COPY entrypoint.sh /usr/local/bin/govoplan-samba-entrypoint
RUN chmod +x /usr/local/bin/govoplan-samba-entrypoint

EXPOSE 1445

USER govoplan:govoplan

ENTRYPOINT ["/usr/local/bin/govoplan-samba-entrypoint"]
