1、准备文件
1、cpolar 程序
2、docker-entrypoint.sh - 入口文件
#!/bin/sh
if [[ -n "${TOKEN}" ]]
then
echo "authToken is ${TOKEN}"
cpolar authtoken ${TOKEN}
echo "cpolar is starting!"
exec "$@"
else
echo "Please set the environment variable token!!!!"
fi
$ @ 是docker run传递的参数,exec “$@” 即执行传递的命令。
使用该脚本文件的好处,可以对变量进行替换。
3、Dockerfile
FROM alpine
RUN mkdir /app
ENV PATH /app:$PATH
COPY docker-entrypoint.sh /app/docker-entrypoint.sh
COPY cpolar /app/cpolar
WORKDIR /app
ENTRYPOINT ["docker-entrypoint.sh"]
主要是将文件复制到基础镜像,然后将脚本设置为启动脚本。
2、构建镜像
docker build -t hausen1012/cpolar:2.0 .
3、使用镜像
docker run -d \
--name cpolar \
--net host \
-e TOKEN=<<AUTHTOKEN>> \
--restart always \
hausen1012/cpolar:2.0 \
cpolar tcp 22
如果要穿透 http 接口,则将 cpolar tcp 22
替换为 cpolar http 80
。
注意事项
docker run 的时候只会执行 CMD 或 ENTRYPOINT 命令,如若某些环境变量需要替换,则需要在脚本文件里面进行设置。