# set base image (host OS)
FROM python:3.8

# set the working directory in the container
WORKDIR /app

# set env tag
ENV RUN_IN_DOCKER Yes

# copy the dependencies file to the working directory
COPY requirements.txt .

# install odbc driver
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
    curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list

RUN apt-get update && apt-get install -y unzip unixodbc-dev git nano ghostscript npm
RUN ACCEPT_EULA=Y apt-get install -y msodbcsql17

# allow ghostscript PDF conversion
RUN sed 's/rights="none" pattern="PDF"/rights="read | write" pattern="PDF"/g' /etc/ImageMagick-6/policy.xml -i

# install dependencies
RUN pip install -r requirements.txt

# copy the content of the local src directory to the working directory
COPY src/ ./src

# create config folder
RUN mkdir -p /app/config

# clone repo
RUN git clone https://github.com/ReceiptManager/receipt-manager-webapp.git

# compile frontend with polymer
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash
RUN apt-get install -y nodejs
RUN npm install -g polymer-cli
RUN cd receipt-manager-webapp/Frontend && polymer build
RUN mkdir -p /app/webroot && mkdir -p /app/webroot/ssl && mkdir -p /app/webroot/settings && cp -a receipt-manager-webapp/Frontend/build/default/. /app/webroot
RUN cp -rf receipt-manager-webapp/Frontend/lang/. /app/webroot/lang
RUN yes | cp -rf receipt-manager-webapp/Frontend/node_modules/lit-html/. /app/webroot/node_modules/lit-html
RUN cp -r receipt-manager-webapp/Frontend/node_modules/lit-element/lit-element.js.map /app/webroot/node_modules/lit-element/lit-element.js.map
RUN cp -r receipt-manager-webapp/Frontend/node_modules/lit-element/lib/*.map /app/webroot/node_modules/lit-element/lib
RUN cp -r receipt-manager-webapp/Frontend/node_modules/@webcomponents/webcomponentsjs/. /app/webroot/node_modules/@webcomponents/webcomponentsjs
RUN cp -r receipt-manager-webapp/Frontend/node_modules/web-animations-js/*.map /app/webroot/node_modules/web-animations-js
RUN cp -r receipt-manager-webapp/Frontend/img/. /app/webroot/img
RUN cp receipt-manager-webapp/Frontend/favicon.ico /app/webroot/favicon.ico
RUN rm -rf receipt-manager-webapp

WORKDIR /app/src

EXPOSE 8721
EXPOSE 5558

# command to run on container start
CMD [ "python", "-u", "./__init__.py" ]