本地使用 Docker-compose
安装 docker-compose, 参考官方文档
如何在 Linux、Mac、Windows 安装 docker-compose, 点击展开查看
在Linux安装
shell
# 1.1 运行此命令以下载Docker Compose的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 1.2 将可执行权限应用于二进制文件
sudo chmod +x /usr/local/bin/docker-compose
使用 Python 的 pip 安装
shell
pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
使用 Docker Desktop
使用 Git 克隆并进入本项目
shell
git clone https://github.com/flipped-aurora/gin-vue-admin.git && cd gin-vue-admin
使用 docker-compose up 一键启动项目
shell
# 使用docker-compose启动四个容器
docker-compose -f deploy/docker-compose/docker-compose.yaml up
# 如果您修改了某些配置选项,可以使用此命令重新打包镜像
docker-compose -f deploy/docker-compose/docker-compose.yaml up --build
# 使用docker-compose 后台启动
docker-compose -f deploy/docker-compose/docker-compose.yaml up -d
# 使用docker-compose 重新打包镜像并后台启动
docker-compose -f deploy/docker-compose/docker-compose.yaml up --build -d
# 服务都启动成功后,使用此命令行可清除none镜像
docker system prune
- web项目预览 http://127.0.0.1:8000
- swagger文档 http://127.0.0.1:8888/swagger/index.html
注意事项
使用 docker-compose 体验时需注意的问题
- 在初始化数据页面中
ip 请填写 docker-compose.yaml 的第 56 行的 ip,或直接使用
mysql
,如下图数据库为
qmPlus
端口为
3306
用户名为
gva
密码为 docker-compose.yaml 的 52行定义的数据库密码
- 如果 server 的 177.7.0.12 这个容器内部ip被占用了, 需要修改地方为
- docker-compose.yaml 的第 42 行的 177.7.0.12 更换为你想要的 ip
- web/.docker-compose/nginx/conf.d/my.conf 的第 20 行的 177.7.0.12 更换为你想要的 ip
使用 docker-compose 部署时需注意的问题
docker-compose 使用自定义的一个 docker 网络
networks: network: ipam: driver: default config: - subnet: '177.7.0.0/16'
子网地址, 默认网关是 177.7.0.1 (docker-compose V2 需要写, V3 则不需要), 具体信息看官方文档
默认的 network 名为 gin-vue-admin_network, 默认是 bridge 模式
如果修改了子网,对应的每个 service 的 ipv4_address 都需要修改, 还有web/.docker-compose/nginx/conf.d/my.conf 的第 20 行的 server 的 ip 也需要修改
server/Dockerfile 使用了多阶段构建,这是 docker 17.05 后引入的,因此安装的docker版本需要高于 17.05
mysql 数据库请使用装在服务器磁盘的本地数据库
- 避免使用 docker 容器内的 mysql, 可能会出现写入的问题, io 比宿主机低 docker 的持久化机制问题.
使用本项目的 docker-compose 进行部署时, 请修改docker-compose.yaml 对应的 nginx配置, mysql 配置, networks 配置,redis配置,按需自行更改.