FROM alpine

# Include dist
ADD dist/ /root/dist/

# Install packages
RUN apk -U --no-cache add \
               autoconf \
               bind-tools \
               build-base \
               cython \
               git \
               libffi \
               libffi-dev \
               libcap \
               make \
               py-asn1 \
               py-cffi \
               py-chardet \
               py-cparser \
               py-cryptography \
               py-dateutil \
               py-enum34 \
               py-idna \
               py-ipaddress \
               py-jinja2 \
               py-lxml \
               py-mysqldb \
               py-openssl \
               py-pip \
               py-requests \
               py-setuptools \
               python \
               python-dev && \
    apk -U add --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ \
               py-beautifulsoup4 \
               php7 \
               php7-dev \
               py-cssselect \
               py-gevent \
               py-greenlet \
               py-mongo \
               py-sqlalchemy \
               py-webob && \
    pip install --no-cache-dir --upgrade pip && \

# Install php sandbox from git
    git clone --depth=1 https://github.com/mushorg/BFR /opt/BFR && \
    cd /opt/BFR && \
    phpize7 && \
    ./configure \
      --with-php-config=/usr/bin/php-config7 \
      --enable-bfr && \
    make && \
    make install && \
    cd / && \
    rm -rf /opt/BFR /tmp/* /var/tmp/* && \
    echo "zend_extension = "$(find /usr -name bfr.so) >> /etc/php7/php.ini && \

# Install glastopf from git
    git clone --depth=1 https://github.com/mushorg/glastopf.git /opt/glastopf && \
    cd /opt/glastopf && \
    cp /root/dist/requirements.txt /opt/glastopf/ && \
    pip install --no-cache-dir . && \
    cd / && \
    rm -rf /opt/glastopf /tmp/* /var/tmp/* && \
    setcap cap_net_bind_service=+ep /usr/bin/python2.7 && \

# Setup user, groups and configs
    addgroup -g 2000 glastopf && \
    adduser -S -H -u 2000 -D -g 2000 glastopf && \
    mkdir -p /etc/glastopf && \
    mv /root/dist/glastopf.cfg /etc/glastopf/ && \

# Clean up
    apk del --purge autoconf \
                    build-base \
                    file \
                    git \
                    libffi-dev \
                    php7-dev \
                    python-dev \
                    py-pip \
                    re2c && \
    rm -rf /root/* && \
    rm -rf /var/cache/apk/*

# Set workdir and start glastopf
USER glastopf:glastopf
WORKDIR /tmp/glastopf/
CMD cp /etc/glastopf/glastopf.cfg /tmp/glastopf && exec glastopf-runner
