Update dockerfile

This commit is contained in:
Tulir Asokan 2020-07-12 18:00:24 +03:00
parent ba74044e76
commit 7015c6711c
3 changed files with 66 additions and 18 deletions

6
.dockerignore Normal file
View File

@ -0,0 +1,6 @@
.editorconfig
.codeclimate.yml
*.png
*.md
.venv
maubot/management/frontend/node_modules

View File

@ -3,9 +3,15 @@ FROM node:12 AS frontend-builder
COPY ./maubot/management/frontend /frontend COPY ./maubot/management/frontend /frontend
RUN cd /frontend && yarn --prod && yarn build RUN cd /frontend && yarn --prod && yarn build
FROM alpine:3.11 FROM alpine:3.12
RUN echo $'\
@edge http://dl-cdn.alpinelinux.org/alpine/edge/main\n\
@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing\n\
@edge http://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories
RUN apk add --no-cache \ RUN apk add --no-cache \
python3 py3-pip py3-setuptools py3-wheel \
ca-certificates \ ca-certificates \
su-exec \ su-exec \
py3-aiohttp \ py3-aiohttp \
@ -19,23 +25,38 @@ RUN apk add --no-cache \
py3-click \ py3-click \
py3-packaging \ py3-packaging \
py3-markdown \ py3-markdown \
py3-alembic@edge \
py3-cssselect@edge \
py3-commonmark@edge \
py3-pygments \
py3-tz@edge \
py3-tzlocal@edge \
py3-regex@edge \
py3-wcwidth@edge \
# encryption
py3-cffi \
olm-dev \
py3-pycryptodome \
py3-unpaddedbase64 \
py3-future \
# plugin deps
py3-pillow \ py3-pillow \
py3-magic \ py3-magic \
py3-feedparser \ py3-feedparser \
py3-dateutil \ py3-dateutil \
py3-lxml py3-lxml \
# TODO remove pillow, magic, feedparser and lxml when maubot supports installing dependencies py3-gitlab@edge
# TODO remove pillow, magic, feedparser, lxml and gitlab when maubot supports installing dependencies
COPY requirements.txt /opt/maubot/requirements.txt COPY requirements.txt /opt/maubot/requirements.txt
COPY optional-requirements.txt /opt/maubot/optional-requirements.txt
WORKDIR /opt/maubot WORKDIR /opt/maubot
RUN apk add --virtual .build-deps \ RUN apk add --virtual .build-deps python3-dev build-base git \
python3-dev \ && sed -Ei 's/psycopg2-binary.+//' optional-requirements.txt \
build-base \ && pip3 install -r requirements.txt -r optional-requirements.txt \
git \
&& pip3 install -r requirements.txt \
dateparser langdetect python-gitlab pyquery \ dateparser langdetect python-gitlab pyquery \
&& apk del .build-deps && apk del .build-deps
# TODO also remove dateparser, langdetect, python-gitlab and pyquery when maubot supports installing dependencies # TODO also remove dateparser, langdetect and pyquery when maubot supports installing dependencies
COPY . /opt/maubot COPY . /opt/maubot
COPY ./docker/mbc.sh /usr/local/bin/mbc COPY ./docker/mbc.sh /usr/local/bin/mbc

View File

@ -1,6 +1,12 @@
FROM alpine:3.11 FROM alpine:3.12
RUN echo $'\
@edge http://dl-cdn.alpinelinux.org/alpine/edge/main\n\
@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing\n\
@edge http://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories
RUN apk add --no-cache \ RUN apk add --no-cache \
python3 py3-pip py3-setuptools py3-wheel \
ca-certificates \ ca-certificates \
su-exec \ su-exec \
py3-aiohttp \ py3-aiohttp \
@ -14,22 +20,37 @@ RUN apk add --no-cache \
py3-click \ py3-click \
py3-packaging \ py3-packaging \
py3-markdown \ py3-markdown \
py3-alembic@edge \
py3-cssselect@edge \
py3-commonmark@edge \
py3-pygments \
py3-tz@edge \
py3-tzlocal@edge \
py3-regex@edge \
py3-wcwidth@edge \
# encryption
py3-cffi \
olm-dev \
py3-pycryptodome \
py3-unpaddedbase64 \
py3-future \
# plugin deps
py3-pillow \ py3-pillow \
py3-magic \ py3-magic \
py3-feedparser \ py3-feedparser \
py3-lxml py3-lxml \
# TODO remove pillow, magic, feedparser and lxml when maubot supports installing dependencies py3-gitlab@edge
# TODO remove pillow, magic, feedparser, lxml and gitlab when maubot supports installing dependencies
COPY requirements.txt /opt/maubot/requirements.txt COPY requirements.txt /opt/maubot/requirements.txt
COPY optional-requirements.txt /opt/maubot/optional-requirements.txt
WORKDIR /opt/maubot WORKDIR /opt/maubot
RUN apk add --virtual .build-deps \ RUN apk add --virtual .build-deps python3-dev build-base git \
python3-dev \ && sed -Ei 's/psycopg2-binary.+//' optional-requirements.txt \
build-base \ && pip3 install -r requirements.txt -r optional-requirements.txt \
git \
&& pip3 install -r requirements.txt \
dateparser langdetect python-gitlab pyquery \ dateparser langdetect python-gitlab pyquery \
&& apk del .build-deps && apk del .build-deps
# TODO also remove dateparser, langdetect, python-gitlab and pyquery when maubot supports installing dependencies # TODO also remove dateparser, langdetect and pyquery when maubot supports installing dependencies
COPY . /opt/maubot COPY . /opt/maubot
COPY ./docker/mbc.sh /usr/local/bin/mbc COPY ./docker/mbc.sh /usr/local/bin/mbc