Dockerfile
FROM portainer/portainer-ce:lts AS base
FROM alpine:latest AS builder
RUN mkdir -p /public
COPY --from=base /public/index.html /public/index.html
RUN sed -i -E \
-e 's|(<script[^>]+src=")main\.[^"]+\.js(")|\1main.5c139f34c1c1db14b9d9.js\2|g' \
-e 's|(<link[^>]+href=")main\.[^"]+\.css(")|\1main.73e3679ce27297e7c3f7.css\2|g' \
-e 's|(<script[^>]+src=")vendor\.[^"]+\.js(")|\1vendor.b2f1dbb3d59345918018.js\2|g' \
-e 's|(<link[^>]+href=")vendor\.[^"]+\.css(")|\1vendor.3400914314d4794add38.css\2|g' \
-e 's|(<script[^>]+src=")runtime\.[^"]+\.js(")|\1runtime.126c90c4663588b8c254.js\2|g' \
/public/index.html
FROM base
LABEL org.opencontainers.image.authors="xian.yuheng"
LABEL [email protected]
COPY --from=builder /public/index.html /public/index.html
COPY src/main.5c139f34c1c1db14b9d9.js /public/
COPY src/main.73e3679ce27297e7c3f7.css /public/
COPY src/vendor.b2f1dbb3d59345918018.js /public/
COPY src/vendor.3400914314d4794add38.css /public/
COPY src/runtime.126c90c4663588b8c254.js /public/
说明
最关键的就是那五个 js
、css
来源 该项目有直接的 docker 镜像 地址,不过它似乎改了整个 /public
目录
我希望最小化改动,所以重写了 Dockerfile
文件
仅需提取其中的 js
、css
文件放在 Dockerfile
同目录下的 src
文件夹里
对应改动 Dockerfile
中的文件名就好了