需求
有些docker镜像依赖第三方库,希望可以在第三方库更新的时候不用重新改dockerfile
国内的机器经常因为连不上源导致构建失败,希望构建的时候可以使用代理
实现
希望可以在第三方库更新的时候不用重新改dockerfile
在dockerfile使用变量trans_version,这里使用了-操作符,表示当trans_version不存在时使用-后的版本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
FROM debian:stable-slim ARG trans_version ENV FRP_VERSION=${trans_version:-0.42.0} ARG TARGETOS ARG TARGETARCH ENV OS_ARCH=${TARGETOS}_${TARGETARCH} RUN apt-get update \ && apt-get install curl -y \ && rm -rf /var/lib/apt/lists/* \ && rm -rf /var/cache/* RUN curl -fsSL "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_${OS_ARCH}.tar.gz" | tar -xzf - frp_${FRP_VERSION}_${OS_ARCH}/frps frp_${FRP_VERSION}_${OS_ARCH}/frpc --strip-components 1 \ && mv frpc /usr/local/bin/frpc \ && mv frps /usr/local/bin/frps CMD ["frps"] |
构建时,在构建命令中插入变量值trans_version动态修改构建的dockerfile中的变量
1 |
curl -fsSL minir.plus/dockerfile/frp | docker buildx build --build-arg trans_version=0.44.0 --push --platform linux/amd64,linux/arm64,linux/arm/v7 -t minirplus/frp:0.44.0 -f - . |
希望构建的时候可以使用代理
在构建命令中填入 --build-arg http_proxy=your-http-proxy-address-and-port --build-arg https_proxy=your-http-proxy-address-and-port
There are no comments yet