# docker build --file Dockerfile --no-cache --tag=ogamma/logger:latest ./
# docker build --file Dockerfile --tag=ogamma/logger:latest ./
# docker build --build-arg ARG_EXE_NAME=idako --file Dockerfile --tag=ogamma/idako-dev:4.3.0

FROM ubuntu:22.04
ARG ARG_EXE_NAME=idako

ENV EXE_NAME=$ARG_EXE_NAME

RUN apt-get update
RUN apt update
RUN apt-get install -y whois

#Create user ogamma in group ogamma to run the process:
RUN groupadd -g 1000 ogamma && useradd -m -u 1000 -g 1000 -s /bin/bash ogamma

RUN echo "Updating web GUI files to the latest version 2.1.1"
RUN mkdir -p /home/ogamma/logger/public_html
RUN mkdir -p /home/ogamma/logger/data/ha-ipc
RUN mkdir -p /home/ogamma/logger/data/ha-logs
RUN chown -R ogamma /home/ogamma/logger
RUN echo "Setting ownership on shared folders ..."
RUN chown -R ogamma /home/ogamma/logger/public_html
RUN chown -R ogamma /home/ogamma/logger/data

RUN apt-get update
ENV DEBIAN_FRONTEND=noninteractive
# RUN apt-get install -y rpm

# Install MS SQL Driver ODBC Driver:
#RUN mkdir -p /home/ogamma/logger/sqlncli-11.0.1790.0
#ADD ./sqlncli-11.0.1790.0/. /home/ogamma/logger/sqlncli-11.0.1790.0/

#RUN mkdir -p /home/ogamma/logger/unixODBC
#ADD ./UnixODBC/. /home/ogamma/logger/UnixODBC/

ADD --chown=ogamma ./install-odbc-driver.sh /home/ogamma/logger/
RUN chmod +x /home/ogamma/logger/install-odbc-driver.sh

# libkrb5-dev is required to connect to MS SQL (dependency for unix-odbc driver).
#RUN apt-get update
#RUN apt-get install -y libkrb5-dev
RUN cd /home/ogamma/logger && ./install-odbc-driver.sh

RUN apt-get remove -y whois
RUN apt-get remove -y rpm

# On ubuntu 2204 version libnettle7 is not available
RUN apt-get install -y libnettle8

RUN apt-get -y autoremove

# Add executable binary:

RUN echo "Adding executable binary to the docker image"

ADD --chown=ogamma $EXE_NAME /home/ogamma/logger/

RUN chmod 774 /home/ogamma/logger/$EXE_NAME
ADD --chown=ogamma libdna.so /home/ogamma/logger/
ADD --chown=ogamma libsfw.so /home/ogamma/logger/
ADD --chown=ogamma start-logger.sh /home/ogamma/logger/
RUN chmod 755 /home/ogamma/logger/start-logger.sh

# update config file:
ADD --chown=ogamma ./config-docker.json /home/ogamma/logger/config.json
RUN chmod 774 /home/ogamma/logger/config.json
ADD --chown=ogamma ./mqtt-ca-cert.pem /home/ogamma/logger/
ADD --chown=ogamma ./sf-ca-cert.pem /home/ogamma/logger/

# Copy Web files:
ADD --chown=ogamma ./public_html/*.min.js /home/ogamma/logger/public_html/
ADD --chown=ogamma ./public_html/mainMenu.js /home/ogamma/logger/public_html/
ADD --chown=ogamma ./public_html/*.css /home/ogamma/logger/public_html/
ADD --chown=ogamma ./public_html/*.html /home/ogamma/logger/public_html/
ADD --chown=ogamma ./public_html/*.txt /home/ogamma/logger/public_html/
ADD --chown=ogamma ./public_html/*.ico /home/ogamma/logger/public_html/

ADD --chown=ogamma ./public_html/cldr-data/. /home/ogamma/logger/public_html/cldr-data/
ADD --chown=ogamma ./public_html/user-manual/. /home/ogamma/logger/public_html/user-manual/
ADD --chown=ogamma ./public_html/css/. /home/ogamma/logger/public_html/css/
ADD --chown=ogamma ./public_html/js/. /home/ogamma/logger/public_html/js/
ADD --chown=ogamma ./public_html/jsoneditor/. /home/ogamma/logger/public_html/jsoneditor/
ADD --chown=ogamma ./public_html/pic/. /home/ogamma/logger/public_html/pic/
ADD --chown=ogamma ./public_html/ace/. /home/ogamma/logger/public_html/ace/

# Copy init files:
ADD --chown=ogamma ./init-db-postgres.sql /home/ogamma/logger/
ADD --chown=ogamma ./init-config-db-postgre.sql /home/ogamma/logger/
ADD --chown=ogamma ./init-config-db-sqlite.sql /home/ogamma/logger/

ADD --chown=ogamma ./init-db-mssql.sql /home/ogamma/logger/
ADD --chown=ogamma ./init-db-mysql.sql /home/ogamma/logger/
ADD --chown=ogamma ./init-db-memsql.sql /home/ogamma/logger/
ADD --chown=ogamma ./init-db-sqlite.sql /home/ogamma/logger/
ADD --chown=ogamma ./init-db-snowflake.sql /home/ogamma/logger/
ADD --chown=ogamma ./snowflake-insert-statement.sql /home/ogamma/logger/
ADD --chown=ogamma ./Opc.Ua*.xml /home/ogamma/logger/

# Copy embeddable Python redistributables
ADD --chown=ogamma ./python/. /home/ogamma/logger/python/

# ln -s existing-file new-file
RUN /bin/ln -s /home/ogamma/logger/python/lib /home/ogamma/logger/python/lib/python3.13
RUN /bin/ln -s /home/ogamma/logger/python/python3 /home/ogamma/logger/python/python

ENV PYTHONHOME=/home/ogamma/logger/python
ENV PYTHONPATH=/home/ogamma/logger/python/lib/site-packages:/home/ogamma/logger/python/lib
ENV LD_LIBRARY_PATH=/home/ogamma/logger/python:/home/ogamma/logger/python/lib:/home/ogamma/logger/python/lib/lib-dynload:/lib/x86_64-linux-gnu:/lib:/usr/lib

# Default Python script files:
ADD --chown=ogamma ./DefaultBrowseFilterScript.py /home/ogamma/logger/
ADD --chown=ogamma ./DefaultVariableFilterScript.py /home/ogamma/logger/
ADD --chown=ogamma ./DefaultUnselectScript.py /home/ogamma/logger/

# Port 4880 is ogamma-logger Web GUI port.
EXPOSE 4880
# Port 5678 is Python debugpy server port
EXPOSE 5678

USER ogamma
WORKDIR /home/ogamma/logger
# CMD ["tail", "-f", "/dev/null"]
ENTRYPOINT ["/bin/sh", "/home/ogamma/logger/start-logger.sh"]
