随着开发工作的日益复杂,高效、集成的开发工具成为提升生产力的关键。IT-Tools 作为一个开源的工具集合项目,将多种常用开发工具(如编码转换、格式化、加密解密等)聚合于一体,为开发者提供了极大的便利。
之前在本地部署了一个it-tools,因为感觉它比较轻便,于是想部署到服务器上来。
1.首先,在本地的it-tools目录中构建镜像文件并在本地保存镜像:
# 在当前it-tools根目录下构建并取名为leepoet-tools
docker build -t leepoet-tools:custom .
# 打包镜像为leepoet-tools.tar
docker save -o leepoet-tools.tar leepoet-tools:custom
2.然后把镜像上传到服务器的/tmp目录下:
# 使用 scp 传输(替换为你的服务器信息)
scp leepoet-tools.tar root@你的服务器IP:/tmp/
3.在服务器上用docker加载镜像:
# 在服务器上加载镜像
docker load -i /tmp/leepoet-tools.tar

可以通过docker ps -a查看一下:

4.在服务器上通过docker生成容器并运行:
# 运行容器
docker run -d -p 3000:80 --name leepoet-toolkit leepoet-tools:custom

*注:
这里有几个点要注意,因为it-tools镜像是一个基于 Alpine Linux 的 Nginx 镜像,并且将 /app/dist目录的内容复制到了 /usr/share/nginx/html(标准的 Nginx 静态文件目录)。目前我无法通过:
# 假设容器内网站根目录是/usr/share/nginx/html
# 重新运行容器并挂载目录
docker run -d \
-p 3000:80 \
--name it-tools-container \
-v /www/wwwroot/tools.leepoet.cn:/usr/share/nginx/html \
leepoet-tools:custom
或者
docker run -d \
--name it-tools \
-p 3000:3000 \
-v /www/wwwroot/tools.leepoet.cn:/data \
corentinth/it-tools:latest
这样的命令去持久化生成它。
如果直接用这个目录/usr/share/nginx/html挂载到/www/wwwroot/tools.leepoet.cn,网站打不开。
如果用/data目录挂载到/www/wwwroot/tools.leepoet.cn的话,网站是可以打开的。但是 /www/wwwroot/tools.leepoet.cn是空的,因为 Nginx 默认不向 /data写入数据,它只从 /usr/share/nginx/html读取静态文件。所以挂载到/data目录没有什么意义。最后我还是直接:
docker run -d -p 3000:80 --name leepoet-toolkit leepoet-tools:custom
生成了容器并运行起来。
然后通过复制容器内的文件到宿主机:
docker cp leepoet-toolkit:/usr/share/nginx/html/. /www/wwwroot/tools.leepoet.cn/

这样的话我是想直接通过正向代理到这个目录。

他现在读取的路径就是/www/wwwroot/tools.leepoet.cn/

https://tools.leepoet.cn/ 然后通过BING提交验证,并通过

为什么要这么操作?
因为之前我是直接把上传的镜像生成在服务器的容器内部,并用域名反向代理到这个内部的容器。也就是DOCKER里的/usr/share/nginx/html这个目录。如果想做SEO验证就必须把XML的文件个人感觉还是比较麻烦。所以如果把/usr/share/nginx/html/直接复制到/www/wwwroot/tools.leepoet.cn/这里的话,再上传BING的XLM验证文件会更合适。当然这是我个人的理解与实践结果。

发表回复