- 从git克隆初始源码至本地目录
git clone https://e.coding.net/qiem/iplanner/iPlanner.git,输入用户名与密码
- 进入本地的源码目录下,打开终端,启动docker
systemctl start docker
- 登录远程仓库
docker login -u [登录账户] qiem-docker.pkg.coding.net
- 下载镜像创建容器
docker-compose up
- engine的首次编译
此时engine容器无法启动,因无Makefile文件所致
利用engine镜像新建一个engine临时容器
docker run -it [engine镜像ID] /bin/bash
- engine编译
此编译发生在engine临时容器内
make -f Makefile.dist prep
./coonfigure --sysconfdir=/etc
make
- 退出engine临时容器并将编译后的内容拷贝至本地
exit
docker cp [engine临时容器ID]:/usr/src/app .
- 在本地源码目录下,将app中的内容移至源码目录下
因app文件下含Makefile文件,app拷贝至源目录后,engine容器即可正常启动 - 保存修改至镜像
将engine临时容器中的编译内容提交至镜像
docker commit [engine临时容器ID] qiem-docker.pkg.coding.net/iplanner/docker/engine:20201105
- 启动engine容器并进入,进行初始化
docker exec -it [engine容器ID] /bin/bash
make migrate
【补充】
在centos7下可能出现 "pemission denied",查看engine运行日志,发现无法写入log文件,程序终止
该问题原因在于centos 下的安全模块selinux未对容器开启权限
解决方法:
- 临时关闭selinux
su -c "setenforce 0"
- 添加selinux规则,将目录挂载至白名单
chcon -Rt svirt_sandbox_file_t [主机挂在目录路径]
- 永久关闭selinux(推荐在在下载源码前更改)
vi /etc/selinux/configure #将SELINUX=enforcing改为SELINUX=disabled,重启生效