FROM ubuntu:24.04
USER root

# update apt
RUN apt-get update && apt-get install -y apt-utils

# install lib
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y sudo \
    curl \
    wget \
    dialog \
    gpg \
    ca-certificates \
    lsb-release \
    locales

# set locale
RUN echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen
RUN locale-gen
ENV LANG=en_US.utf8

# install nfs & iscsi
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y nfs-common open-iscsi

# fix for mssql server ldap-2.5 dep
RUN wget http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.11+dfsg-1~exp1ubuntu3_amd64.deb
RUN dpkg -i libldap-2.5-0_2.5.11+dfsg-1~exp1ubuntu3_amd64.deb
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y libcurl4 libssl-dev libgnutls30

# mssql keys
RUN curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

# mssql repos
RUN curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
RUN curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list

# install mssql server
ENV ACCEPT_EULA="Y"
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y mssql-server \
    mssql-tools18 \
    systemctl \
    unixodbc-dev

# make data directory
RUN mkdir -p /var/opt/mssql/data
RUN chown -R mssql /var/opt/mssql/data

# Cleanup
RUN apt-get clean
RUN rm -rf /var/lib/apt/lists

EXPOSE 1433

USER mssql

# Run SQL Server process
ENTRYPOINT [ "/opt/mssql/bin/sqlservr" ]
