Helloworld
一个稳定安全、简单易用、强大CLI命令支持的薅羊毛运行环境,拥有控制面板和应用开放接口 支持运行 JavaScript Python TypeScript Shell 脚本,可自动配置相关定时计划任务 这是一...
标签:helloworld部署文档
- 如若使用 Podman 部署容器,将命令中的
docker
替换成podman
即可 - 项目容器镜像基于 Alpine Linux 构建,如有其它使用需求自行查看相关文档
1. 参数须知(重要)
注意
必需了解并完全理解下列参数对于部署容器时的用途
名称 | 值 | 用途 | |
---|---|---|---|
1 | ENABLE_ALL_ENV |
true or false |
控制是否在容器启动时预装环境包与常用模块 |
2 | ENABLE_WEB_PANEL |
true or false |
控制是否在容器启动时开启控制面板服务 |
3 | ENABLE_TG_BOT |
true or false |
控制是否在容器启动时开启机器人(TG Bot)服务 |
作用:将容器内的目录映射到宿主机,可直接在宿主机对目录文件进行操作
名称 | 作用 | |
---|---|---|
1 | config |
存放配置文件 |
2 | log |
存放日志文件 |
3 | scripts |
存放主要仓库脚本 |
4 | own |
存放扩展仓库脚本 |
5 | jbot |
电报机器人组件 |
2. 拉取镜像
<span class="token function">docker</span> pull supermanito/helloworld:latestdocker pull supermanito/helloworld:latest
镜像拉下来后建议通过命令 docker images
查看镜像的创建时间以判断拉取的是否为最新版本
如果网络环境较差拉不下来可使用备用镜像,若使用则需要将下面命令中的原镜像名改为备用镜像名
默认拉取的是 Docker Hub 官方仓库的镜像,阿里云仓库备用镜像名称为
registry.cn-hangzhou.aliyuncs.com/supermanito/helloworld:latest
3. 启动容器
注意
下方命令分别对应两种启动方式,不要重复执行二选一即可
说明
- 必须映射 config 配置文件的主机挂载目录,其它目录可以不映射
- 注意容器网络类型,如果是旁路由可能需要切换为 host 类型(桥接)
- 不可以更改
:
右边的内容
-
CLI – 命令行
<span class="token function">docker</span> run -dit <span class="token punctuation">\</span>--name jd <span class="token variable">`<span class="token comment"># 容器名</span>`</span> <span class="token punctuation">\</span>--hostname jd <span class="token variable">`<span class="token comment"># 主机名</span>`</span> <span class="token punctuation">\</span>--network bridge <span class="token variable">`<span class="token comment"># 容器网络类型</span>`</span> <span class="token punctuation">\</span>--restart always <span class="token variable">`<span class="token comment"># 开机自启</span>`</span> <span class="token punctuation">\</span>-p <span class="token number">5678</span>:5678 <span class="token variable">`<span class="token comment"># 端口映射,"主机端口:容器端口"</span>`</span> <span class="token punctuation">\</span>-v /opt/jd/config:/jd/config <span class="token variable">`<span class="token comment"># 配置文件的主机挂载目录</span>`</span> <span class="token punctuation">\</span>-v /opt/jd/log:/jd/log <span class="token variable">`<span class="token comment"># 日志文件的主机挂载目录</span>`</span> <span class="token punctuation">\</span>-v /opt/jd/scripts:/jd/scripts <span class="token variable">`<span class="token comment"># 主要仓库的主机挂载目录</span>`</span> <span class="token punctuation">\</span>-v /opt/jd/own:/jd/own <span class="token variable">`<span class="token comment"># 扩展仓库和扩展脚本的主机挂载目录</span>`</span> <span class="token punctuation">\</span><span class="token variable">`<span class="token comment"># -v /opt/jd/jbot:/jd/jbot</span>`</span> <span class="token variable">`<span class="token comment"># 电报机器人主机挂载目录</span>`</span> <span class="token punctuation">\</span>-e <span class="token assign-left variable">ENABLE_ALL_ENV</span><span class="token operator">=</span>true <span class="token variable">`<span class="token comment"># 是否在容器启动时预装环境包与常用模块</span>`</span> <span class="token punctuation">\</span>-e <span class="token assign-left variable">ENABLE_WEB_PANEL</span><span class="token operator">=</span>true <span class="token variable">`<span class="token comment"># 是否在容器启动时开启控制面板服务</span>`</span> <span class="token punctuation">\</span>-e <span class="token assign-left variable">ENABLE_TG_BOT</span><span class="token operator">=</span>false <span class="token variable">`<span class="token comment"># 是否在容器启动时开启电报机器人服务</span>`</span> <span class="token punctuation">\</span>supermanito/helloworld:latestdocker run -dit \ --name jd `# 容器名` \ --hostname jd `# 主机名` \ --network bridge `# 容器网络类型` \ --restart always `# 开机自启` \ -p 5678:5678 `# 端口映射,"主机端口:容器端口"` \ -v /opt/jd/config:/jd/config `# 配置文件的主机挂载目录` \ -v /opt/jd/log:/jd/log `# 日志文件的主机挂载目录` \ -v /opt/jd/scripts:/jd/scripts `# 主要仓库的主机挂载目录` \ -v /opt/jd/own:/jd/own `# 扩展仓库和扩展脚本的主机挂载目录` \ `# -v /opt/jd/jbot:/jd/jbot` `# 电报机器人主机挂载目录` \ -e ENABLE_ALL_ENV=true `# 是否在容器启动时预装环境包与常用模块` \ -e ENABLE_WEB_PANEL=true `# 是否在容器启动时开启控制面板服务` \ -e ENABLE_TG_BOT=false `# 是否在容器启动时开启电报机器人服务` \ supermanito/helloworld:latest
已注释部分可选参数,如有需要请对照上下内容格式自行取消注释
如果想让容器内文件映射在当前目录可将/opt/jd
修改为$(pwd)
,也可指定其它路径 -
Compose – 编排
- 新建 YAML 文件
<span class="token function">mkdir</span> -p /opt/jd<span class="token builtin class-name">cd</span> /opt/jd<span class="token function">vim</span> docker-compose.yaml
mkdir -p /opt/jd cd /opt/jd vim docker-compose.yaml
- 编辑内容
<span class="token key atrule">version</span><span class="token punctuation">:</span> <span class="token string">"2.0"</span><span class="token key atrule">services</span><span class="token punctuation">:</span><span class="token key atrule">jd</span><span class="token punctuation">:</span><span class="token key atrule">image</span><span class="token punctuation">:</span> supermanito/helloworld<span class="token punctuation">:</span>latest <span class="token comment"># 镜像名,可以使用阿里云仓库的备用镜像</span><span class="token key atrule">container_name</span><span class="token punctuation">:</span> jd <span class="token comment"># 容器名(可随意更改)</span><span class="token key atrule">hostname</span><span class="token punctuation">:</span> jd <span class="token comment"># 主机名(可随意更改)</span><span class="token key atrule">restart</span><span class="token punctuation">:</span> always <span class="token comment"># 开机自启</span><span class="token key atrule">tty</span><span class="token punctuation">:</span> <span class="token boolean important">true</span><span class="token key atrule">network_mode</span><span class="token punctuation">:</span> bridge <span class="token comment"># 容器网络类型,如果是旁路由可能需要切换为 host 类型(桥接),默认为 NAT</span><span class="token key atrule">ports</span><span class="token punctuation">:</span><span class="token punctuation">-</span> 5678<span class="token punctuation">:</span><span class="token number">5678</span> <span class="token comment"># 端口映射,格式为 "主机端口:容器端口",主机端口号可自定义,容器端口用来访问控制面板不可修改</span><span class="token key atrule">volumes</span><span class="token punctuation">:</span><span class="token punctuation">-</span> /opt/jd/config<span class="token punctuation">:</span>/jd/config <span class="token comment"># 定义配置文件的主机挂载目录</span><span class="token punctuation">-</span> /opt/jd/log<span class="token punctuation">:</span>/jd/log <span class="token comment"># 定义日志文件的主机挂载目录</span><span class="token punctuation">-</span> /opt/jd/scripts<span class="token punctuation">:</span>/jd/scripts <span class="token comment"># 定义 Scripts 主要仓库的主机挂载目录</span><span class="token punctuation">-</span> /opt/jd/own<span class="token punctuation">:</span>/jd/own <span class="token comment"># 定义 Own 扩展仓库和扩展脚本的主机挂载目录</span><span class="token comment"># - /opt/jd/jbot:/jd/jbot # 定义电报机器人的主机挂载目录</span><span class="token key atrule">environment</span><span class="token punctuation">:</span><span class="token punctuation">-</span> ENABLE_ALL_ENV=true <span class="token comment"># 是否在容器启动时预装环境包与常用模块</span><span class="token punctuation">-</span> ENABLE_WEB_PANEL=true <span class="token comment"># 是否在容器启动时开启控制面板服务</span><span class="token punctuation">-</span> ENABLE_TG_BOT=false <span class="token comment"># 是否在容器启动时开启电报机器人服务</span>
version: "2.0" services: jd: image: supermanito/helloworld:latest # 镜像名,可以使用阿里云仓库的备用镜像 container_name: jd # 容器名(可随意更改) hostname: jd # 主机名(可随意更改) restart: always # 开机自启 tty: true network_mode: bridge # 容器网络类型,如果是旁路由可能需要切换为 host 类型(桥接),默认为 NAT ports: - 5678:5678 # 端口映射,格式为 "主机端口:容器端口",主机端口号可自定义,容器端口用来访问控制面板不可修改 volumes: - /opt/jd/config:/jd/config # 定义配置文件的主机挂载目录 - /opt/jd/log:/jd/log # 定义日志文件的主机挂载目录 - /opt/jd/scripts:/jd/scripts # 定义 Scripts 主要仓库的主机挂载目录 - /opt/jd/own:/jd/own # 定义 Own 扩展仓库和扩展脚本的主机挂载目录 # - /opt/jd/jbot:/jd/jbot # 定义电报机器人的主机挂载目录 environment: - ENABLE_ALL_ENV=true # 是否在容器启动时预装环境包与常用模块 - ENABLE_WEB_PANEL=true # 是否在容器启动时开启控制面板服务 - ENABLE_TG_BOT=false # 是否在容器启动时开启电报机器人服务
已注释部分可选参数,如有需要请自行取消注释
- 启动容器
<span class="token function">docker-compose</span> up -d
docker-compose up -d
- 新建 YAML 文件
4. 查看启动日志
<span class="token function">docker</span> logs -f jddocker logs -f jd
注意
- 请认真查看容器启动后的初始化进度并 等待其运行完毕,当输出 容器启动成功 字样时方可通过
Ctrl + C
退出查看 - 如果报错导致容器没有启动成功那么请自行检查原因,绝大多数问题都是您的网络环境所导致,自行判断不懂就百度翻译
- 常见报错
-
Repository more than 5 connections
———— 原因在于Gitee
的服务器限制每秒最多同时连接5
个客户端,此报错为正常现象稍后再次尝试即可
-
ssh: connect to host gitee.com port XXX: Connection timed out
———— 是由于当前宿主机的XXX
端口不可用所导致的网络连通性问题
-
Could not resolve hostname XXXX: Temporary failure in name resolution lost connection
———— 字面意思,表示无法解析到该XXXX
域名服务器,说明网络环境异常
-
-
安装环境组件 (选择安装)
<span class="token function">docker</span> <span class="token builtin class-name">exec</span> -it jd <span class="token function">bash</span> -c <span class="token string">"taskctl env install"</span>docker exec -it jd bash -c "taskctl env install"
此命令为安装环境包与常用模块(全局)以用于满足运行部分脚本的环境要求,64位处理器还会附带安装
Python
和TypeScript
环境,安装版本分别是3.8.10
和10.4.0
友情提示
如果在容器启动时
ENABLE_ALL_ENV
变量没有赋值为false
则不用再执行此命令重复安装一次
数据统计
数据评估
本站水木纱纪提供的Helloworld都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由水木纱纪实际控制,在2022年11月14日 下午7:46收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,水木纱纪不承担任何责任。