FROM ubuntu:18.04
# 更新套件清單
RUN apt update
# 安裝 systemctl
RUN apt install -y systemd
# 安裝 nginx
RUN apt install -y nginx
# 修改 nginx 設定
RUN echo "server {" > /etc/nginx/sites-available/default

RUN echo "    listen 80;" >> /etc/nginx/sites-available/default

RUN echo "    server_name localhost;" >> /etc/nginx/sites-available/default

RUN echo "    charset utf-8;" >> /etc/nginx/sites-available/default

RUN echo "    access_log /notebooks/log/nginx_access.log;" >> /etc/nginx/sites-available/default

RUN echo "    error_log /notebooks/log/nginx_error.log;" >> /etc/nginx/sites-available/default

RUN echo "    location / {" >> /etc/nginx/sites-available/default

RUN echo "        include /etc/nginx/uwsgi_params;" >> /etc/nginx/sites-available/default

RUN echo "        uwsgi_pass unix:/notebooks/uwsgi.sock;" >> /etc/nginx/sites-available/default

RUN echo "    }" >> /etc/nginx/sites-available/default

RUN echo "}" >> /etc/nginx/sites-available/default
# 安裝 mssql
RUN apt install -y tdsodbc freetds-dev unixodbc unixodbc-dev
# 修改 mssql 設定
RUN echo "[sqlserver]" > /etc/freetds/freetds.conf

RUN echo "    host = ${MSSQL_HOST}" >> /etc/freetds/freetds.conf

RUN echo "    port = ${MSSQL_PORT}" >> /etc/freetds/freetds.conf

RUN echo "    tds version = ${TDS_VERSION}" >> /etc/freetds/freetds.conf

RUN echo "[sqlserverdatasource]" > /etc/odbc.ini

RUN echo "    Driver = FreeTDS" >> /etc/odbc.ini

RUN echo "    Description = ODBC connection via FreeTDS" >> /etc/odbc.ini

RUN echo "    Servername = sqlserver" >> /etc/odbc.ini

RUN echo "    Database = ${MSSQL_DABS}" >> /etc/odbc.ini

RUN echo "    TDS_Version = ${TDS_VERSION}" >> /etc/odbc.ini

RUN echo "[ODBC]" > /etc/odbcinst.ini

RUN echo "    Trace = Yes" >> /etc/odbcinst.ini

RUN echo "    TraceFile = /notebooks/log/odbc.log" >> /etc/odbcinst.ini

RUN echo "[FreeTDS]" >> /etc/odbcinst.ini

RUN echo "    Description = TDS driver (Sybase/MS SQL)" >> /etc/odbcinst.ini

RUN echo "    Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so" >> /etc/odbcinst.ini

RUN echo "    Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so" >> /etc/odbcinst.ini

RUN echo "    CPTimeout =" >> /etc/odbcinst.ini

RUN echo "    CPReuse =" >> /etc/odbcinst.ini

RUN echo "    FileUsage = 1" >> /etc/odbcinst.ini
# 安裝 python
RUN apt install -y python3-dev python3-pip
# 移除套件清單
RUN rm -rf /var/lib/apt/lists/*
# 更新 python3 套件清單
RUN pip3 install --upgrade pip

RUN pip3 install Flask-API
# 安裝 flask
RUN pip3 install flask flask-restful flask-cors flask-jwt-extended flask-sqlalchemy flask-mysql
# 安裝其他套件
RUN pip3 install passlib pytz pypyodbc requests
# 安裝 jupyter
RUN pip3 install jupyter
# 安裝 uwsgi
RUN pip3 install uwsgi
# MSSQL 相關參數
# ENV MSSQL_HOST MSSQL_PORT MSSQL_USR MSSQL_PWD MSSQL_DB MSSQL_TDS
# MYSQL 相關參數
# ENV MYSQL_HOST MYSQL_PORT MYSQL_USR MYSQL_PWD MYSQL_DB

ENV LC_ALL=C.UTF-8 LANG=C.UTF-8 TZ=Asia/Taipei

ENV FLASK_APP=run.py FLASK_DEBUG=1

# VOLUME ["/notebooks"]

COPY notebooks /notebooks

WORKDIR /notebooks

CMD service nginx start & uwsgi --ini /notebooks/uwsgi.ini