看docker run文档时发现可以通过参数–entrypoint覆盖dockerfile中的原生ENTRYPOINT,所以有了这个想法,把frps和frpc同时装入image,然后通过–entrypoint参数动态指定运行程序,即可达到使用一个镜像,可以分别运行frpc和frps的效果。
Dockerfile
1 |
nano Dockerfile.frp |
1 2 3 4 5 6 7 8 |
FROM debian:stable-slim ENV FRP_VERSION=0.36.2 RUN apt update \ && apt install -y wget \ && rm -rf /var/lib/apt/lists/* \ && rm -rf /var/cache/* \ && wget -O - "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz" | tar -xzf - frp_${FRP_VERSION}_linux_amd64/frps frp_${FRP_VERSION}_linux_amd64/frpc --strip-components 1 ENTRYPOINT ["/frps"] |
Build
1 |
docker build -t minirplus/frp -f ./Dockerfile.frp . |
Dive
1 |
docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive:latest minirplus/frp |
1 2 3 4 |
Image name: minirplus/frp Total Image size: 99 MB Potential wasted space: 353 kB Image efficiency score: 99 % |
Run
run frps
1 |
docker run -it --rm --network host -v /root/frp/frps.ini:/frps.ini --entrypoint /frps minirplus/frp -c /frps.ini |
run frpc
1 |
docker run -it --rm --network host -v /root/frp/frpc.ini:/frpc.ini --entrypoint /frpc minirplus/frp -c /frpc.ini |
There are no comments yet