为不同的系统架构构建合适的mihomo。本文通过Dockerfile的方式进行说明如何把一个mihomo程序打包,构建成docker镜像,并在系统中运行。
了解系统架构类型
在终端中执行命令
$ uname -a
# Linux cccc 4.19.8-1.el7.elrepo.x86_64 #1 SMP Sat Dec 8 10:07:47 EST 2018 x86_64 x86_64 x86_64 GNU/Linux
发现是x86_64
架构类型。
下载对应的架构类型程序
去网上找到并下载对应的架构类型mihomo。
并在同一目录中执行以下命令:
$ mkdir /mihomo-config
$ wget -O /mihomo-config/geoip.metadb https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.metadb
$ wget -O /mihomo-config/geosite.dat https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geosite.dat
$ wget -O /mihomo-config/geoip.dat https://fastly.jsdelivr.net/gh/MetaCubeX/meta-rules-dat@release/geoip.dat
编写Dockerfile文件
在mihomo同级目录下执行命令
$ touch Dockerfile
内容如下:
FROM alpine:latest
LABEL org.opencontainers.image.source="https://github.com/MetaCubeX/mihomo"
RUN set -x \
&& sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk add --no-cache \
ca-certificates \
tzdata \
iptables
COPY ./mihomo-config/ /root/.config/mihomo/
COPY ./mihomo-linux-amd64-compatible-v1.18.4 /mihomo
RUN chmod +x /mihomo
ENTRYPOINT [ "/mihomo", "-d", "/etc/mihomo"]
:wq保存
构建docker images
在dockerfile同级目录下执行
$ docker build -t myself/mihomo:v1.18.4 .
#[+] Building 1.7s (10/10) FINISHED docker:default
# => [internal] load build definition from Dockerfile 0.0s
# => => transferring dockerfile: 495B 0.0s
# => [internal] load metadata for docker.io/library/alpine:latest 0.5s
# => [internal] load .dockerignore 0.0s
# => => transferring context: 2B 0.0s
# => [1/5] FROM docker.io/library/alpine:latest@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b 0.0s
# => [internal] load build context 0.4s
# => => transferring context: 28.07MB 0.4s
# => CACHED [2/5] RUN set -x && sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 0.0s
# => CACHED [3/5] COPY ./mihomo-config/ /root/.config/mihomo/ 0.0s
构建完成。
查看镜像
$ docker images
# REPOSITORY TAG IMAGE ID CREATED SIZE
# myself/mihomo v1.18.4 e6808b49ba08 44 minutes ago 88MB
这样就构建好了
打包导出docker images
导出目录中执行:
$ docker save -o mihomo-linux-amd64-v1.18.4.tar myself/mihomo:v1.18.4
无回复的结束是最好的结果。
复制到想要执行的机器上。
运行
$ docker run -p 7890:7890 -p 9090:9090 -v /root/docker/订阅.yml:/etc/mihomo/config.yaml --rm myself/mihomo:v1.18.4