一个完整项目往往不是能靠单一容器就能解决的,总是使用命令行启动太复杂了,把项目依赖的部分都配置到yml文件里,直接docker-compose up 要更清晰,更明了。
服务器语言是使用golang,数据库用了两种:mysql和mongo,主要是想兼具事务和文档型的存储。mysql8.0其实已经具备文档型存储,但是我还没学,惭愧,只是因为mongo用过比较熟练一些,所以才选择了mongo。
alpine是一种极简的linux镜像,大小只有十几M,go镜像有800M之多,有两个优势:1. 编译后go文件是可以在其他操作系统运行而不需要环境的,2. alpine镜像为基础的容器很小。之前有介绍过alpine镜像的go项目dockerfile配置,这里就不贴dockerfile文件了。
直接先上db的yml文件配置,db和server分两个yml文件我是有自己的考量在里面,实际应用看需求吧,都可以。在新环境下配置yml文件,db肯定是空的,要重新导入数据卷,我们就顺便复习下数据卷的恢复。
version: '3.7'
services:
mysql:
image: mysql:8.0
container_name: dhh_mysql
volumes:
- type</