有一个应用是这样安装的,以root身份登陆vps(debian11):
#编译准备
apt install git cvs zlib1g-dev make gcc -y
#编译安装libowfat
cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat
cd libowfat
make
make install
#编译安装opentracker
git clone git://erdgeist.org/opentracker
cd ../opentracker
make
make install
#将opentracker设置成一个service, 端口设置为6881
mv opentracker /usr/bin
cd ..
cat <<EOF >/etc/systemd/system/opentracker.service
[Unit]
Description=opentracker server
[Service]
User=root
ExecStart=/usr/bin/opentracker -p 6881 -P 681
Restart=on-abort
LimitCORE=infinity
LimitNOFILE=infinity
LimitNPROC=infinity
[Install]
WantedBy=multi-user.target
EOF
#为端口6881打开防火墙
apt install ufw
ufw allow 6881
#启动service
systemctl enable /etc/systemd/system/opentracker.service
systemctl start opentracker
我可否为这个应用制作一个docker镜像呢?用docker run来达到我上面那些代码的目的?
报错了
sudo docker build . -t opentracker:v1
[+] Building 44.7s (3/3) FINISHED docker:default
=> [internal] load .dockerignore 3.0s
=> => transferring context: 2B 0.1s
=> [internal] load build definition from dockerfile 3.5s
=> => transferring dockerfile: 445B 0.0s
=> ERROR [internal] load metadata for docker.io/library/debian:11 39.3s
------
> [internal] load metadata for docker.io/library/debian:11:
------
dockerfile:8
--------------------
6 | RUN cd opentracker && make
7 |
8 | >>> FROM debian:11
9 | COPY --from=builder /opentracker/opentracker /opt
10 | EXPOSE 6881
--------------------
ERROR: failed to solve: debian:11: failed to do request: Head "https://docker.m.daocloud.io/v2/library/debian/manifests/11?ns=docker.io": socks connect tcp 127.0.0.1:8080->docker.m.daocloud.io:443: EOF
我的镜像源
cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"http://hub-mirror.c.163.com"
]
}
我的本地代理可以使用
curl --socks5-hostname 127.0.0.1:10800 -s -w "%{http_code}\n" -o /dev/null www.baidu.com
200
在构建镜像时,使用代理
sudo docker build . -t opentracker:v1 --build-arg https_proxy=socks5://127.0.0.1:10800
[+] Building 51.4s (3/3) FINISHED docker:default
=> [internal] load .dockerignore 0.8s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from dockerfile 0.5s
=> => transferring dockerfile: 445B 0.0s
=> ERROR [internal] load metadata for docker.io/library/debian:11 49.0s
------
> [internal] load metadata for docker.io/library/debian:11:
------
dockerfile:8
--------------------
6 | RUN cd opentracker && make
7 |
8 | >>> FROM debian:11
9 | COPY --from=builder /opentracker/opentracker /opt
10 | EXPOSE 6881
--------------------
ERROR: failed to solve: debian:11: failed to do request: Head "https://docker.m.daocloud.io/v2/library/debian/manifests/11?ns=docker.io": socks connect tcp 127.0.0.1:8080->docker.m.daocloud.io:443: EOF
还是报错
可以,我按照你的脚本写了下面这个Dockerfile,如下:
复制上面的内容,重命名为Dockerfile,放到任意一个空目录,然后在这个目录下执行
完成之后会生成一个名为opentracker:v1的镜像