• 搜索
  • 夜间模式
    ©2026  依刻学习 Theme by OneBlog

    依刻学习博客

    搜索
    标签
  • 首页>
  • 学习的一天>
  • 正文
  • 基于dockerfile+脚本一键启动kodcloud : 后日谈

    2025年02月07日 12 阅读 0 评论 2845 字

    关于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 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.018 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。