diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d419542 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.editorconfig +.codeclimate.yml +*.png +*.md +.venv +maubot/management/frontend/node_modules diff --git a/Dockerfile b/Dockerfile index 56ac4c3..ee6fa68 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,9 +3,15 @@ FROM node:12 AS frontend-builder COPY ./maubot/management/frontend /frontend 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 \ + python3 py3-pip py3-setuptools py3-wheel \ ca-certificates \ su-exec \ py3-aiohttp \ @@ -19,23 +25,38 @@ RUN apk add --no-cache \ py3-click \ py3-packaging \ 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-magic \ py3-feedparser \ py3-dateutil \ - py3-lxml -# TODO remove pillow, magic, feedparser and lxml when maubot supports installing dependencies + py3-lxml \ + py3-gitlab@edge +# TODO remove pillow, magic, feedparser, lxml and gitlab when maubot supports installing dependencies COPY requirements.txt /opt/maubot/requirements.txt +COPY optional-requirements.txt /opt/maubot/optional-requirements.txt WORKDIR /opt/maubot -RUN apk add --virtual .build-deps \ - python3-dev \ - build-base \ - git \ - && pip3 install -r requirements.txt \ +RUN apk add --virtual .build-deps python3-dev build-base git \ + && sed -Ei 's/psycopg2-binary.+//' optional-requirements.txt \ + && pip3 install -r requirements.txt -r optional-requirements.txt \ dateparser langdetect python-gitlab pyquery \ && 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 ./docker/mbc.sh /usr/local/bin/mbc diff --git a/Dockerfile.ci b/Dockerfile.ci index 0fc5f35..051bd10 100644 --- a/Dockerfile.ci +++ b/Dockerfile.ci @@ -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 \ + python3 py3-pip py3-setuptools py3-wheel \ ca-certificates \ su-exec \ py3-aiohttp \ @@ -14,22 +20,37 @@ RUN apk add --no-cache \ py3-click \ py3-packaging \ 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-magic \ py3-feedparser \ - py3-lxml -# TODO remove pillow, magic, feedparser and lxml when maubot supports installing dependencies + py3-lxml \ + py3-gitlab@edge +# TODO remove pillow, magic, feedparser, lxml and gitlab when maubot supports installing dependencies COPY requirements.txt /opt/maubot/requirements.txt +COPY optional-requirements.txt /opt/maubot/optional-requirements.txt WORKDIR /opt/maubot -RUN apk add --virtual .build-deps \ - python3-dev \ - build-base \ - git \ - && pip3 install -r requirements.txt \ +RUN apk add --virtual .build-deps python3-dev build-base git \ + && sed -Ei 's/psycopg2-binary.+//' optional-requirements.txt \ + && pip3 install -r requirements.txt -r optional-requirements.txt \ dateparser langdetect python-gitlab pyquery \ && 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 ./docker/mbc.sh /usr/local/bin/mbc