FROM debian:trixie
ARG DEBIAN_FRONTEND=noninteractive

# System dependent


ARG TZ
ENV TZ=${TZ}
ARG LANG

ENV DEBUGINFOD_URLS=https://debuginfod.debian.net

RUN apt-get update \
    && apt-get -y upgrade \
    && apt-get -y install \
    systemd \
    sudo \
    openssh-server \
    rsyslog \
    rsync \
    build-essential \
    libssl-dev \
    libldap2-dev \
    libpq-dev \
    libglobus-gssapi-gsi-dev \
    pkg-config \
    postgresql \
    postgresql-client \
    libfuse-dev \
    fuse \
    autofs \
    libacl1-dev \
    ruby \
    git \
    globus-simple-ca \
    globus-gsi-cert-utils-progs \
    globus-proxy-utils \
    && globus-version \
    && apt-get -y install \
    # already installed
    python3 \
    python3-docopt \
    python3-schema \
    python3-tqdm \
    flake8 \
    && apt-get -y install krb5-kdc krb5-admin-server \
    krb5-user libkrb5-3 libkrb5-dev \
    && apt-get -y install sasl2-bin libsasl2-modules-db libsasl2-dev \
    libsasl2-modules libsasl2-modules-gssapi-mit jq \
    curl golang-go \
    && apt-get -y install g++ cmake libsqlite3-dev \
    libcurl4-openssl-dev uuid-dev \
    && sed -i -E "s/# (${LANG})/\1/" /etc/locale.gen \
    && locale-gen \
    && update-locale LANG=${LANG} \
    # Debian 13 no longer provides libfuse2t64-dbgsym.
    # Use debuginfod to retrieve libfuse debug symbols on demand.
    && apt-get -y install \
    ncat ldnsutils iproute2 net-tools bind9utils dnsutils telnet tcpdump \
    manpages manpages-ja man-db \
    gdb valgrind strace inotify-tools \
    vim nano emacs-nox less \
    # FIXME: Add the debug package once the migration to fuse3 is complete
    # libfuse2-dbgsym \
    # Disable automatic package updates.
    && systemctl disable apt-daily.timer \
    && systemctl disable apt-daily-upgrade.timer

# System independent (see setup-univ.sh)

ARG GFDOCKER_USERNAME_PREFIX
ARG GFDOCKER_TENANTNAME_PREFIX
ARG GFDOCKER_PRIMARY_USER
ARG GFDOCKER_PRIMARY_UID
ARG GFDOCKER_TENANT_ADMIN_USER
ARG GFDOCKER_TENANT_ADMIN_UID
ARG GFDOCKER_NUM_GFMDS
ARG GFDOCKER_NUM_GFSDS
ARG GFDOCKER_NUM_USERS
ARG GFDOCKER_NUM_TENANTS
ARG GFDOCKER_HOSTNAME_PREFIX_GFMD
ARG GFDOCKER_HOSTNAME_PREFIX_GFSD
ARG GFDOCKER_HOSTNAME_SUFFIX
ARG GFDOCKER_USE_SAN_FOR_GFSD
COPY --chown=${GFDOCKER_PRIMARY_UID}:${GFDOCKER_PRIMARY_UID} . /work/gfarm
COPY --chown=${GFDOCKER_TENANT_ADMIN_UID}:${GFDOCKER_TENANT_ADMIN_UID} \
	. /work/gfarm2
RUN "/work/gfarm/docker/dev/common/setup-univ.sh"

CMD ["/sbin/init"]
