gStore/docs/DOCKER_DEPLOY_CN.md

55 lines
2.6 KiB
Markdown
Raw Normal View History

2018-06-05 21:35:25 +08:00
# Docker方式部署gStore中文
> 简单说我们提供两种方式通过容器部署gStore
>
2018-07-05 11:29:20 +08:00
> 一种是通过项目根目录的Dockerfile文件自主构建然后运行容器.
2018-06-05 21:35:25 +08:00
>
2018-07-05 11:29:20 +08:00
> 另一种是直接下载已经自动构建完成的镜像,然后直接运行.
2018-06-05 21:35:25 +08:00
## 0x00.环境准备
关于安装使用Docker官方针对常见Linux发行版文档已经写得很详细就直接给出参考地址[英文文档](https://docs.docker.com/install/linux/docker-ce/ubuntu/)[中文文档](https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/#%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6) 。
2018-07-05 11:29:20 +08:00
需要注意的是Docker版本过高可能导致一些问题建议仔细阅读注意事项。当前测试环境版本是<u>Docker CE 17.06.1</u>
2018-06-05 21:35:25 +08:00
## 0x01.通过Dockerfile构建镜像
2018-07-05 11:29:20 +08:00
假设已经拥有正常的Docker环境跟网络后首先通过`git clone ` 下载项目,然后进入项目根目录,输入命令`docker build -t gstore .` 即可开始构建默认使用根目录的Dockerfile关于具体说明Dockerfile文件内也有补充。
2018-06-05 21:35:25 +08:00
2018-07-05 11:29:20 +08:00
构建完成后,直接通过`docker run -it gstore` 即可进入容器执行其他操作。
2018-06-05 21:35:25 +08:00
## 0x02.直接拉取镜像运行
2018-07-05 11:29:20 +08:00
无需下载项目或自己构建,直接输入`docker pull suxunbin/auto_gstore:latest` 拉取已经在docker hub上自动构建完成的镜像。拉取完成后 `docker run -it suxunbin/auto_gstore:latest ` 即可直接进入容器使用。
2018-06-05 21:35:25 +08:00
## 0x03.存在的问题
因为容器化伴随着一些不确定的影响,包括不限于网络,锁,缓存,权限等问题,遇到调试起来很难定位,已知可能存在以下问题:(宿主机是Centos7.4)
2018-07-05 11:29:20 +08:00
1. 在Dockerfile的构建过程中如果添加环境`ENV CC="ccache g++" ` 会导致编译错误,原因未知且可能影响镜像缓存层,导致之后构建反复报错。。
2018-06-05 21:35:25 +08:00
2018-07-05 11:29:20 +08:00
2. 通过docker run启动容器后可能出现启动后即自动关闭的情况。
2018-06-05 21:35:25 +08:00
## 0x04.后续工作
#### A.性能测试
这个待后续补充容器化跟原生运行gStore在不同文件数/网络等情况下,容器的性能损耗具体比重。。
#### B.连接其他容器测试
2018-07-05 11:29:20 +08:00
文档也待后续补充更新
2018-06-05 21:35:25 +08:00
#### C.构建精简优化
因为gcc:8镜像就有1.7G了自带了很多不必要的东西包括go的环境之类的希望后续除了在调低gcc版本之外能对源镜像本身改进出精简版来。
---
其他可能也有不少需要补充,所以目前只是**抛砖引玉**,添加了一个最基本的版本。基本的环境构建只是容器化的第一步,后续工作还不少~ 这只是初版的V1.0文档。