FROM ubuntu:18.04

RUN apt-get update && \
    apt-get install -y curl \
                       git \
                       python \
                       python-pip \
                       python-dev \
                       autoconf \
                       libtool \
                       gawk
RUN curl -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
RUN tar xvf go1.10.3.linux-amd64.tar.gz

WORKDIR /app

COPY ./bin /app/bin
COPY ./lib /app/lib
COPY ./share /app/share
COPY ./requirements.txt /app
COPY ./src/we-lang/we-lang.go /app

# There are several files that must be fetched/created manually
# before building the image
COPY ./.wegorc /root
COPY ./.ip2location.key /root
COPY ./airports.dat /app
COPY ./GeoLite2-City.mmdb /app

RUN export PATH=$PATH:/go/bin && \ 
    go get -u github.com/mattn/go-colorable && \
    go get -u github.com/klauspost/lctime && \
    go get -u github.com/mattn/go-runewidth && \
    export GOBIN="/root/go/bin" && \
    go install /app/we-lang.go

RUN pip install -r requirements.txt

RUN mkdir /app/cache
RUN mkdir -p /var/log/supervisor && \
    mkdir -p /etc/supervisor/conf.d
RUN chmod -R o+rw /var/log/supervisor && \
    chmod -R o+rw /var/run
COPY share/docker/supervisord.conf /etc/supervisor/supervisord.conf

ENV WTTR_MYDIR="/app"
ENV WTTR_GEOLITE="/app/GeoLite2-City.mmdb"
ENV WTTR_WEGO="/root/go/bin/we-lang"
ENV WTTR_LISTEN_HOST="0.0.0.0"
ENV WTTR_LISTEN_PORT="8002"

EXPOSE 8002

CMD ["/usr/local/bin/supervisord"]