部署脚本

docker compose部署应用


version: "3"
services:
  mysql:
    image: mysql:8.0.36
    container_name: mysql
    privileged: true
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
      - TZ=Asia/Shanghai
    command:
      --character-set-server=utf8mb4
      --lower_case_table_names=1
      --collation-server=utf8mb4_general_ci
    volumes:
      - /root/workspace/mysql/data:/var/lib/mysql
      - /root/workspace/mysql/conf:/etc/mysql/conf.d
    restart: always
    networks:
      - job_net

  minio:
    image: minio:RELEASE.2024-10-13T13-34-11Z
    container_name: minio
    privileged: true
    volumes:
      - /root/workspace/minio/data:/data
      - /root/workspace/minio/config:/root/.minio
    environment:
      - MINIO_ACCESS_KEY=test
      - MINIO_SECRET_KEY=test
      - MINIO_BROWSER_REDIRECT_URL=https://test/minio/
    command: server /data --console-address ":9000" --address ":9001"
    restart: always
    networks:
      - job_net

  nginx:
    image: nginx
    container_name: nginx
    privileged: true
    ports: 
      - "80:80"
      - "443:443"
    volumes:
      - /root/workspace/nginx/html:/usr/share/nginx/html/
      - /root/workspace/nginx/ssl:/etc/nginx/ssl
      - /root/workspace/nginx/default.conf:/etc/nginx/conf.d/default.conf
    restart: always
    networks:
      - job_net

  job:
    image: job:0.0.5
    container_name: job
    privileged: true
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - GIN_MODE=release
    volumes:
      - /root/workspace/job/config:/config
    depends_on:
      - mysql
      - minio
    networks:
      - job_net

networks:
  job_net:
    name: job_net
    driver: bridge