我在docker容器中运行monolith应用程序,在GKE上运行k8s。
应用程序包含python&node dependencies,还包含前端包的webpack。
主要目标是尽可能减少构建时间。写入的Dockerfile是多阶段的。
Webpack需要更多的时间来生成包。要生成docker映像,我正在使用已经很高的配置工作程序。
为了减少我尝试使用
Kaniko builder
.
问题:
作为docker的python代码缓存层,它工作得很好。但是当
JS
或
CSS
当有任何变化
JS公司
&安培;
如果生成新的包,则改为使用缓存层。
有没有办法通过向docker文件传递一些值来分离构建新包或使用缓存。
FROM python:3.5 AS python-build
WORKDIR /app
COPY requirements.txt ./
RUN pip install -r requirements.txt &&\
pip3 install Flask-JWT-Extended==3.20.0
ADD . /app
FROM node:10-alpine AS node-build
WORKDIR /app
COPY --from=python-build ./app/app/static/package.json app/static/
COPY --from=python-build ./app ./
WORKDIR /app/app/static
RUN npm cache verify && npm install && npm install -g --unsafe-perm node-sass && npm run sass && npm run build
FROM python:3.5-slim
COPY --from=python-build /root/.cache /root/.cache
WORKDIR /app
COPY --from=node-build ./app ./
RUN apt-get update -yq \
&& apt-get install curl -yq \
&& pip install -r requirements.txt
EXPOSE 9595
CMD python3 run.py