FROM python:3.6

RUN apt-get update \
  && apt-get install -y locales \
  && rm -rf /var/lib/apt/lists/*

RUN ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
RUN localedef -c -f UTF-8 -i en_US en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8

RUN useradd -ms /bin/bash appuser

WORKDIR /instagram-statistics
COPY --chown=appuser:appuser . /instagram-statistics
RUN chown -R appuser:appuser /instagram-statistics

USER appuser
ENV PATH="/home/appuser/.local/bin:${PATH}"

RUN pip install --upgrade pip \
  && python -m pip install pipenv==2020.11.15 matplotlib sentry-sdk pluggy iniconfig vcrpy pip pyparsing==2.4.2

RUN if [ -f /instagram-statistics/Pipfile.lock ]; then pipenv sync --system; fi

ARG SNOWFLAKE_ROLE
ARG SNOWFLAKE_WAREHOUSE
ARG SNOWFLAKE_PASSWORD
ARG SNOWFLAKE_USER
ARG SNOWFLAKE_ACCOUNT
ARG SNOWFLAKE_DATABASE
ARG SNOWFLAKE_SCHEMA
ARG INSTAGRAM_PASSWORD
ARG INSTAGRAM_NICKNAME
ARG CHROME_SAFE_STORAGE
ARG Environment
ARG SENTRY_DSN
ARG SLACK_WEBHOOK_URL
ARG SPREADSHEET_ID
ARG SNOWFLAKE_DATABASE_POSTFIX

ENV SNOWFLAKE_ROLE=$SNOWFLAKE_ROLE
ENV SNOWFLAKE_WAREHOUSE=$SNOWFLAKE_WAREHOUSE
ENV SNOWFLAKE_PASSWORD=$SNOWFLAKE_PASSWORD
ENV SNOWFLAKE_USER=$SNOWFLAKE_USER
ENV SNOWFLAKE_ACCOUNT=$SNOWFLAKE_ACCOUNT
ENV SNOWFLAKE_DATABASE=$SNOWFLAKE_DATABASE
ENV SNOWFLAKE_SCHEMA=$SNOWFLAKE_SCHEMA
ENV INSTAGRAM_PASSWORD=$INSTAGRAM_PASSWORD
ENV INSTAGRAM_NICKNAME=$INSTAGRAM_NICKNAME
ENV CHROME_SAFE_STORAGE=$CHROME_SAFE_STORAGE
ENV Environment=$Environment
ENV SENTRY_DSN=$SENTRY_DSN
ENV SLACK_WEBHOOK_URL=$SLACK_WEBHOOK_URL
ENV SPREADSHEET_ID=$SPREADSHEET_ID
ENV SNOWFLAKE_DATABASE_POSTFIX=$SNOWFLAKE_DATABASE_POSTFIX

RUN make lint test_unit
RUN python /instagram-statistics/instagram_with_instaloader.py

#docker build -f Dockerfile --build-arg SNOWFLAKE_ROLE=DEV_ENGINEERING --build-arg SNOWFLAKE_WAREHOUSE=DEV_OWS_WAREHOUSE --build-arg SNOWFLAKE_PASSWORD=snowflakeaccount4theOrchard --build-arg SNOWFLAKE_USER=NPALCHINSKIY --build-arg SNOWFLAKE_ACCOUNT=orchard --build-arg SNOWFLAKE_DATABASE=DEV_ENGINEERING --build-arg SNOWFLAKE_SCHEMA=NPALCHINSKIY --build-arg INSTAGRAM_PASSWORD=axtoe01 --build-arg INSTAGRAM_NICKNAME=axtoe --build-arg CHROME_SAFE_STORAGE=AebowoWsfxTqdf3nTasZ3A== --build-arg Environment=dev -t myimage .

