1+ FROM python:3.7-slim AS base
2+
3+ # Mount volume
4+ ADD ./src /app
5+
6+ # Set working directory
7+ WORKDIR /app
8+
9+ RUN ls -l
10+
11+ # Setup dependencies for pyodbc
12+ RUN \
13+ export ACCEPT_EULA='Y' && \
14+ export MYSQL_CONNECTOR='mysql-connector-odbc-8.0.18-linux-glibc2.12-x86-64bit' && \
15+ apt-get update && \
16+ apt-get install -y curl build-essential unixodbc-dev g++ apt-transport-https && \
17+ #
18+ # Install pyodbc db drivers for MSSQL, PG and MySQL
19+ curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
20+ curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
21+ curl -L -o ${MYSQL_CONNECTOR}.tar.gz https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/${MYSQL_CONNECTOR}.tar.gz && \
22+ apt-get update && \
23+ gunzip ${MYSQL_CONNECTOR}.tar.gz && tar xvf ${MYSQL_CONNECTOR}.tar && \
24+ cp ${MYSQL_CONNECTOR}/bin/* /usr/local/bin && cp ${MYSQL_CONNECTOR}/lib/* /usr/local/lib && \
25+ myodbc-installer -a -d -n "MySQL ODBC 8.0 Driver" -t "Driver=/usr/local/lib/libmyodbc8w.so" && \
26+ myodbc-installer -a -d -n "MySQL ODBC 8.0" -t "Driver=/usr/local/lib/libmyodbc8a.so" && \
27+ apt-get install -y msodbcsql17 odbc-postgresql && \
28+ #
29+ # Update odbcinst.ini to make sure full path to driver is listed
30+ sed 's/Driver=psql/Driver=\/ usr\/ lib\/ x86_64-linux-gnu\/ odbc\/ psql/' /etc/odbcinst.ini > /tmp/temp.ini && \
31+ mv -f /tmp/temp.ini /etc/odbcinst.ini && \
32+ # Install dependencies
33+ pip install --upgrade pip && \
34+ pip install -r requirements.txt && rm requirements.txt
35+ # # Cleanup build dependencies
36+ # rm -rf ${MYSQL_CONNECTOR}* && \
37+ # apt-get remove -y curl apt-transport-https debconf-utils g++ gcc rsync unixodbc-dev build-essential gnupg2 && \
38+ # apt-get autoremove -y && apt-get autoclean -y
39+
40+ # install pyodbc (and, optionally, sqlalchemy)
41+ RUN pip install --trusted-host pypi.python.org pyodbc==4.0.26 sqlalchemy==1.3.5
42+
43+ ENV FLASK_APP=server.py
44+
45+ # Hot reload flag
46+ ENV FLASK_ENV=development
47+
48+ # Run flask app on port 6650
49+ ENV FLASK_RUN_PORT=6650
50+ CMD ["flask" , "run" , "--host" , "0.0.0.0" ]
0 commit comments