在 Docker 上快速搭建 RAP2 应用。
克隆仓库
git clone https://github.com/ganl/rap2-docker.git
初始化并更新submodule,主要是下载最新rap2-delos和rap2-dolores
git submodule init
git submodule update
#官方代码经常不能正常编译,可修改.gitmodules中的url为自己的fork库;修改后执行
git submodule sync
git submodule update --remote
复制env文件
mv env-example .env
修改.env,主要的几个地方:
- 修改dolores(前端)中访问delos(接口)服务serve相关值
# used in config.prod.ts,
DELOS_SERVE_PROTOCOL=http
# local's IP or Domain or hostname
DELOS_SERVE_HOST=localhost
#Generally, same with DELOS_PORT, expose port
DELOS_SERVE_PORT=8888
后端和前端分离部署的(两个docker),此处配置会替换dolores的config.prod.ts中serve的值,修改后需要重新编译前端dolores
镜像;如上配置dolores将通过 http://localhost:8888
访问后端delos
。
- 修改本地存储路径
mysql存放路径,建议第一次部署确定好路径;修改路径数据不会自动Migrate,需手动导出再导入
DATA_PATH_HOST=~/.rap2/data
- 修改DOLORES本地映射端口(镜像内运行端口80不可配,expose端口可配)
DOLORES_PORT=80
- 修改DELOS运行端口(默认8080,代码取的环境变量
SERVE_PORT
的值)
DELOS_PORT=8880
修改DELOS_SERVE_PROTOCOL
和DELOS_SERVE_HOST
以及DELOS_SERVE_PORT
,需要执行docker-compose build dolores
编译前端镜像;后端delos不用重新编译
1 - 启动
docker-compose up dolores
➜ rap2-docker git:(master) docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------
rap2_delos_1 node dispatch.js Up 0.0.0.0:8088->80/tcp
rap2_dolores_1 /bin/sh -c http-server -s ... Up 0.0.0.0:8888->80/tcp
rap2_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:13306->3306/tcp, 33060/tcp
rap2_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:16379->6379/tcp
2 - 初始化DB
➜ rap2-docker git:(master) docker-compose exec delos sh
/app # node scripts/init
3 - 后台运行容器
docker-compose down
docker-compose up -d dolores
4 - 修改admin密码
docker-compose exec mysql bash
用.env中设定的密码登录数据库,默认root!pwd
#mysql -u root -p
> use rap2
> update Users set password = '14e1b600b1fd579f47433b88e8d85291' where fullname = 'admin';
修改后的admin密码为123456,初始化的登录邮箱为admin@rap2.com
1 - 升级DB
➜ rap2-docker git:(master) docker-compose exec delos node scripts/updateSchema
/app # node scripts/updateSchema
2 - 升级镜像
docker-compose down
# 重新构建并启动
docker-compose up --build -d dolores
docker image prune -f
docker ps
你也可以使用以下命令查看某项目的容器
docker-compose ps
docker-compose stop
停止某个容器:
docker-compose stop {容器名称}
docker-compose down
1 - 首先使用 docker ps
命令查看正在运行的容器
2 - 进入某个容器使用:
docker-compose exec {container-name} bash # mysql redis
docker-compose exec {container-name} sh # delos dolores
例如: 进入 MySQL 容器
docker-compose exec mysql bash
3 - 退出容器, 键入 exit
.
el7
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo service docker start
修改daemon配置文件/etc/docker/daemon.json来使用加速器, 加速地址获取:https://cr.console.aliyun.com/cn-hangzhou/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9cujqpdr.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker