Update the build configuration to use webpack and compiled assets

master
kaiyou 5 years ago
parent ecdf0c25b3
commit c2a04ab1d4

@ -1,20 +1,25 @@
FROM alpine:3.8 # First stage to build assets
# python3 shared with most images FROM node:8 as assets
RUN apk add --no-cache \
python3 py3-pip git bash \ COPY package.json ./
&& pip3 install --upgrade pip RUN npm install
RUN pip3 install git+https://github.com/usrpro/MailuStart.git#egg=mailustart
# Image specific layers under this line 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 RUN mkdir -p /app
WORKDIR /app WORKDIR /app
COPY requirements-prod.txt requirements.txt COPY requirements-prod.txt requirements.txt
RUN apk add --no-cache libressl curl postgresql-libs mariadb-connector-c \ RUN pip install -r requirements.txt
&& 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
COPY --from=assets static ./mailu/ui/static
COPY mailu ./mailu COPY mailu ./mailu
COPY migrations ./migrations COPY migrations ./migrations
COPY start.py /start.py COPY start.py /start.py

@ -1,49 +1,50 @@
alembic==1.0.2 alembic==1.0.10
asn1crypto==0.24.0 asn1crypto==0.24.0
Babel==2.6.0 Babel==2.6.0
bcrypt==3.1.5 bcrypt==3.1.6
blinker==1.4 blinker==1.4
cffi==1.11.5 cffi==1.12.3
Click==7.0 Click==7.0
cryptography==2.3.1 cryptography==2.6.1
decorator==4.3.0 decorator==4.4.0
dnspython==1.16.0 dnspython==1.16.0
dominate==2.3.4 dominate==2.3.5
Flask==1.0.2 Flask==1.0.2
Flask-Babel==0.12.2 Flask-Babel==0.12.2
Flask-Bootstrap==3.3.7.1 Flask-Bootstrap==3.3.7.1
Flask-DebugToolbar==0.10.1 Flask-DebugToolbar==0.10.1
Flask-Limiter==1.0.1 Flask-Limiter==1.0.1
Flask-Login==0.4.1 Flask-Login==0.4.1
Flask-Migrate==2.3.1 Flask-Migrate==2.4.0
Flask-Script==2.0.6 Flask-Script==2.0.6
Flask-SQLAlchemy==2.3.2 Flask-SQLAlchemy==2.4.0
Flask-WTF==0.14.2 Flask-WTF==0.14.2
gunicorn==19.9.0 gunicorn==19.9.0
idna==2.7 idna==2.8
infinity==1.4 infinity==1.4
intervals==0.8.1 intervals==0.8.1
itsdangerous==1.1.0 itsdangerous==1.1.0
Jinja2==2.10 Jinja2==2.10.1
limits==1.3 limits==1.3
Mako==1.0.7 Mako==1.0.9
MarkupSafe==1.1.0 MarkupSafe==1.1.1
mysqlclient==1.3.14 mysqlclient==1.4.2.post1
passlib==1.7.1 passlib==1.7.1
psycopg2==2.7.6.1 psycopg2==2.8.2
pycparser==2.19 pycparser==2.19
pyOpenSSL==18.0.0 pyOpenSSL==19.0.0
python-dateutil==2.7.5 python-dateutil==2.8.0
python-editor==1.0.3 python-editor==1.0.4
pytz==2018.7 pytz==2019.1
PyYAML==4.2b4 PyYAML==5.1
redis==3.0.1 redis==3.2.1
six==1.11.0 six==1.12.0
SQLAlchemy==1.2.13 socrate==0.1.1
tabulate==0.8.2 SQLAlchemy==1.3.3
tenacity==5.0.2 tabulate==0.8.3
validators==0.12.2 tenacity==5.0.4
validators==0.12.5
visitor==0.1.3 visitor==0.1.3
Werkzeug==0.14.1 Werkzeug==0.15.2
WTForms==2.2.1 WTForms==2.2.1
WTForms-Components==0.10.3 WTForms-Components==0.10.4

@ -9,9 +9,8 @@ module.exports = {
vendor: "./assets/vendor.js" vendor: "./assets/vendor.js"
}, },
output: { output: {
path: path.resolve(__dirname, "mailu/ui/static/"), path: path.resolve(__dirname, "static/"),
filename: "[name].js", filename: "[name].js"
publicPath: "/static"
}, },
module: { module: {
rules: [ rules: [

Loading…
Cancel
Save