tpotce/docker/glastopf/Dockerfile
2018-06-07 12:38:46 +00:00

91 lines
2.6 KiB
Docker

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