diff --git a/core/admin/Dockerfile b/core/admin/Dockerfile index 40f9ff59..493b377e 100644 --- a/core/admin/Dockerfile +++ b/core/admin/Dockerfile @@ -1,20 +1,25 @@ -FROM alpine:3.8 -# python3 shared with most images -RUN apk add --no-cache \ - python3 py3-pip git bash \ - && pip3 install --upgrade pip -RUN pip3 install git+https://github.com/usrpro/MailuStart.git#egg=mailustart -# Image specific layers under this line +# First stage to build assets +FROM node:8 as assets + +COPY package.json ./ +RUN npm install + +COPY ./webpack.config.js ./ +COPY ./assets ./assets +RUN mkdir static \ + && ./node_modules/.bin/webpack-cli + + +# Actual application +FROM python:3.7 + RUN mkdir -p /app WORKDIR /app COPY requirements-prod.txt requirements.txt -RUN apk add --no-cache libressl curl postgresql-libs mariadb-connector-c \ - && apk add --no-cache --virtual build-dep \ - libressl-dev libffi-dev python3-dev build-base postgresql-dev mariadb-connector-c-dev \ - && pip3 install -r requirements.txt \ - && apk del --no-cache build-dep +RUN pip install -r requirements.txt +COPY --from=assets static ./mailu/ui/static COPY mailu ./mailu COPY migrations ./migrations COPY start.py /start.py diff --git a/core/admin/requirements-prod.txt b/core/admin/requirements-prod.txt index 6c55e192..b76fe00b 100644 --- a/core/admin/requirements-prod.txt +++ b/core/admin/requirements-prod.txt @@ -1,49 +1,50 @@ -alembic==1.0.2 +alembic==1.0.10 asn1crypto==0.24.0 Babel==2.6.0 -bcrypt==3.1.5 +bcrypt==3.1.6 blinker==1.4 -cffi==1.11.5 +cffi==1.12.3 Click==7.0 -cryptography==2.3.1 -decorator==4.3.0 +cryptography==2.6.1 +decorator==4.4.0 dnspython==1.16.0 -dominate==2.3.4 +dominate==2.3.5 Flask==1.0.2 Flask-Babel==0.12.2 Flask-Bootstrap==3.3.7.1 Flask-DebugToolbar==0.10.1 Flask-Limiter==1.0.1 Flask-Login==0.4.1 -Flask-Migrate==2.3.1 +Flask-Migrate==2.4.0 Flask-Script==2.0.6 -Flask-SQLAlchemy==2.3.2 +Flask-SQLAlchemy==2.4.0 Flask-WTF==0.14.2 gunicorn==19.9.0 -idna==2.7 +idna==2.8 infinity==1.4 intervals==0.8.1 itsdangerous==1.1.0 -Jinja2==2.10 +Jinja2==2.10.1 limits==1.3 -Mako==1.0.7 -MarkupSafe==1.1.0 -mysqlclient==1.3.14 +Mako==1.0.9 +MarkupSafe==1.1.1 +mysqlclient==1.4.2.post1 passlib==1.7.1 -psycopg2==2.7.6.1 +psycopg2==2.8.2 pycparser==2.19 -pyOpenSSL==18.0.0 -python-dateutil==2.7.5 -python-editor==1.0.3 -pytz==2018.7 -PyYAML==4.2b4 -redis==3.0.1 -six==1.11.0 -SQLAlchemy==1.2.13 -tabulate==0.8.2 -tenacity==5.0.2 -validators==0.12.2 +pyOpenSSL==19.0.0 +python-dateutil==2.8.0 +python-editor==1.0.4 +pytz==2019.1 +PyYAML==5.1 +redis==3.2.1 +six==1.12.0 +socrate==0.1.1 +SQLAlchemy==1.3.3 +tabulate==0.8.3 +tenacity==5.0.4 +validators==0.12.5 visitor==0.1.3 -Werkzeug==0.14.1 +Werkzeug==0.15.2 WTForms==2.2.1 -WTForms-Components==0.10.3 +WTForms-Components==0.10.4 diff --git a/core/admin/webpack.config.js b/core/admin/webpack.config.js index cb66a4a5..e2c00567 100644 --- a/core/admin/webpack.config.js +++ b/core/admin/webpack.config.js @@ -9,9 +9,8 @@ module.exports = { vendor: "./assets/vendor.js" }, output: { - path: path.resolve(__dirname, "mailu/ui/static/"), - filename: "[name].js", - publicPath: "/static" + path: path.resolve(__dirname, "static/"), + filename: "[name].js" }, module: { rules: [