关于kodcloud服务
之前其实就配过kodcloud,当时是与typecho(博客)一起部署的,那时搭建了好几天,大部分时间都在搭建typecho,因为是自己学,跟着网上其他人的博客部署都不行(当时刚学docker),kodcloud服务还好,直接使用容器启动了,但是仅仅使用了kodcloud容器,mysql还是部署在宿主机上的,没有redis,配好nginx连上就结束了
那时也想过使用mysql容器,但是一直起不来,现在想想就是因为没有设置环境变量导致的
关于dockerfile
dockerfile本身没问题,可是写了4个dockerfile与4个启动脚本DR,我发现对于稍微大一点的架构,使用dockerfile+脚本就有些麻烦了,因为它不能直接运行容器而是只能构建镜像,必须使用脚本运行容器,很麻烦
关于START脚本
START本质上就是4个DR启动脚本的整合并且加上了一些可自定义的功能,加上一些判断,本身并不复杂,但是这个脚本在后面的jenkins部署上错误频发,让我回忆起了当初写java时一个bug修一天的感觉,无论时java还是shell,逻辑上都是相同的,bug也差不多,都是考虑不周导致的结果!
关于docker-compose
在写完dockerfile+脚本后,我乘着刚刚写完的'余热',又去写了docker-compose,确实比dockerfile+脚本要容易,并且由docker管理,写起来与k8s的清单的感觉一模一样,比清单结构更简单清晰
构建kodcloud集群的docker-compose如下
#与START放一个路径
version: '3.8'
services:
#kod
kod:
image: wym/kodcloud:kod
container_name: kod
#ports:
volumes:
- /app/docker/kodcloud/kod/html:/var/www/html
networks:
- kodnet
depends_on:
- kod-redis
- kod-mysql
build:
context: ./kod
dockerfile: dockerfile
#environment:
#command:
restart: always
#redis
kod-redis:
image: wym/redis:kod
container_name: kod-redis
#ports:
volumes:
- /app/docker/kodcloud/redis/data:/data
networks:
- kodnet
#depends_on:
build:
context: ./redis
dockerfile: dockerfile
#environment:
#command:
restart: always
#mysql
kod-mysql:
image: wym/mysql:kod
container_name: kod-mysql
#ports:
volumes:
- /app/docker/kodcloud/mysql/mysql:/var/lib/mysql
- /app/docker/kodcloud/mysql/logs:/logs
networks:
- kodnet
#depends_on:
build:
context: ./mysql
dockerfile: dockerfile
#environment:
#command:
restart: always
#nginx
kod-nginx:
image: wym/nginx:kod
container_name: kod-nginx
ports:
- 888:80
volumes:
- /app/docker/kodcloud/nginx/conf.d:/etc/nginx/conf.d
- /app/docker/kodcloud/nginx/html:/usr/share/nginx/html
- kod-nginx-log:/var/log/nginx
networks:
- kodnet
depends_on:
- kod
build:
context: ./nginx
dockerfile: dockerfile
#environment:
#command:
restart: always
networks:
kodnet:
driver: bridge
#创建数据卷
volumes:
kod-nginx-log:
本文著作权归作者 [ wymm ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。