安装

#版本安装
sudo curl -L https://github.com/docker/compose/releases/download/1.29.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

#bash 补全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.27.4/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

root@ipc-H410M-S2-V2:/aibox/docker_compose# ./build.sh 
## ------ 一键化部署【开始】 ------ ##
## ------ load 镜像包 ------ ##
## ------ 停止docker-compose服务 ------ ##
## ------ 构建docker-compose服务 ------ ##
## ------ 启用docker-compose服务 ------ ##
## ------ 一键化部署【结束】 ------ ##

version: '3'    --首行,描述执行docker-composer的规则版本号,现在用我的是3版本
services:       --例出我要编排的所有服务,即把每个容器看作一个服务,取一个别名
  nginx:        --我给前端服务取名nginx
     restart: always                 --这里表示如果容器意外退出,会让它自动重启
     image: 192.168.1.14/material-management/nginx:latest    --来自我们基础镜像
     container_name: mynginx          --取一个容器名
     network_mode:  "service:nacos"   --加入nacos这个服务的网络,它们用同一IP,这是我投机取巧的实现,看最下描述
     privileged: true             --让容器用特权,这样挂载的目录或文件进行创建,执行不会报权限相关错误
     cap_drop:                    --下面也是权限相关,用于介绍 关闭所有权限并赋予特定权限
        - ALL
     cap_add:
        - CHOWN
        - DAC_OVERRIDE
        - SETGID
        - SETUID
     volumes:                      --挂载特定目录或文件
       - /data/nginx/etc/nginx.conf:/etc/nginx/nginx.conf   --如果是文件,记录提前写好目录中,不然会生成为同名目录
       - /data/nginx/log/:/var/log/nginx   
       - /data/nginx/www/:/var/www 
  nacos:
     image: 192.168.1.14/common/nacos:fengshun
     container_name: mynacos 
     restart: always 
     networks:
        - mynetwork
     ports:                      --开放这些端口,因为我让下面这些容器都加入这个网络共用同一IP,属于我个人投机操作
        - 80:8080 
        - 8080:8080
        - 8081:8081 
        - 8088:8088 
        - 8848:8848 
        - 6379:6379  
        - 9876:9876
        - 10909:10909
        - 10911:10911
  rocketmq-server:             --rocketmq的命名服务
     image: 192.168.1.14/common/rocketmq:namesvr
     container_name: rocketmq-server
     restart: always
     volumes:
        - /data/rocketmq-server/:/etc/rocketmq/
     network_mode:  "service:nacos"
  rocketmq-broker:
     image: foxiswho/rocketmq:broker
     container_name: rocketmq-broker
     restart: always
     environment:
        NAMESRV_ADDR: "localhost:9876"
        JAVA_OPTS: " -Duser.home=/opt"
        JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
     command: mqbroker -c /etc/rocketmq/broker.conf
     volumes:
        - /data/rocketmq-broker/broker.conf:/etc/rocketmq/broker.conf
     network_mode:  "service:nacos"
     depends_on: 
        - rocketmq-server     --等rocketmq的命名服务启动后再创建
  minio:
     image: 192.168.1.14/common/minio:fengshun
     container_name: myminio
     restart: always
     cap_add: 
        - ALL
     volumes:
        - /data/miniodata:/data
     network_mode:  "service:nacos"
  redis:
     image: 192.168.1.14/common/redis:latest
     container_name: myredis
     restart: always
     network_mode:  "service:nacos"
     volumes:
        - /data/redisdata:/data 
  file-server:
     image: 192.168.1.14/material-management/file-server:pre-1.2.6-SNAPSHOT
     container_name: file-server
     restart: always
     volumes:
        - /data/logs/filelog/:/tmp/mclog/
     network_mode:  "service:nacos"
     privileged: true
     cap_add: 
        - ALL
     depends_on:
        - minio     --等minio服务启动后再创建
        - nacos    --等nacos的注册中心启动后再创建
  msg-server:
     image: 192.168.1.14/material-management/message-server:pre-1.2.9-SNAPSHOT
     container_name: msg-server
     restart: always
     volumes:
        - /data/logs/msglog:/tmp/mclog/
     network_mode:  "service:nacos"
     privileged: true
     cap_add: 
        - ALL
     depends_on:
        - redis 
        - nacos 
  log-server:
     image: 192.168.1.14/material-management/log-server:pre-1.2.9-SNAPSHOT
     container_name: log-server
     restart: always
     privileged: true
     cap_add: 
        - ALL
     volumes:
        - /data/logs/loglog/:/tmp/mclog/
     network_mode:  "service:nacos"
     depends_on: 
        - nacos 
  gateway-server:
     image: 192.168.1.14/material-management/gateway-server:pre-1.2.9-SNAPSHOT
     container_name: gateway-server
     restart: always
     privileged: true
     volumes:
        - /data/logs/gatewaylog/:/tmp/mclog/
     network_mode:  "service:nacos" 
     cap_add: 
        - ALL
     depends_on: 
        - nacos 
networks:     --创建一个docker 网络
  mynetwork:   
    name:  'mynetwork'    --命名网络
    external: false      
    driver: bridge         --采取桥接,还有HOST,就是跟随宿主机的IP
文档更新时间: 2023-12-18 03:25   作者:JeffreyCheung