docker配置文件

作者:king 发布日期:2025年5月16日 17:59 浏览量:44

Dockerfile

FROM openjdk:8
EXPOSE 48080
ENTRYPOINT ["java", "-Duser.timezone=Asia/Shanghai", "-jar", "/opt/app/your-server.jar", "-Xss256k", "-Xms2g", "-Xmx4g", "-XX:+UseG1GC"]

docker-compose.yml

version: '3.8'

services:
 # MinIO 服务
  minio:
    image: minio/minio
    network_mode: host
    container_name: minio
    ports:
      - "9000:9000"  # MinIO API 端口
      - "9001:9001"  # MinIO 控制台端口
    volumes:
      - ./minio/data:/data  # MinIO 数据存储目录
    environment:
      - "MINIO_ROOT_USER=admin"          # 管理员账号
      - "MINIO_ROOT_PASSWORD=yourpassword"  # 管理员密码
    command: server /data --console-address ":9001"  # 启动命令
    restart: unless-stopped
  caddy:
    image: caddy:latest
    network_mode: host
    container_name: caddy
    volumes:
      - ./caddy/Caddyfile:/etc/caddy/Caddyfile  # Caddy 配置文件
      - ./caddy/data:/data                      # 证书存储
      - ./caddy/config:/config                  # Caddy 配置缓存
      - ./your-web.cn:/var/www/your-web.cn
    restart: unless-stopped
  nginx:
    image: nginx:latest
    network_mode: host
    container_name: nginx
    ports:
      - "9090:80"  # 将容器80端口映射到宿主机9090端口
      - "808:808"  # 将容器80端口映射到宿主机9090端口
    volumes:
      - ./conf/nginx.conf:/etc/nginx/nginx.conf  # 映射Nginx主配置文件
      #- ./conf/conf.d:/etc/nginx/conf.d  # 映射额外的配置文件目录
      - ./logs:/var/log/nginx  # 映射日志目录
      - /root/nginx-docker/html:/usr/share/nginx/html  # 映射静态文件目录
    restart: unless-stopped
 # MySQL数据库服务
  mysql:
    image: mysql:5.7.22
    container_name: mysql
    ports:
      - "3307:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=root123456
      - TZ=Asia/Shanghai
    volumes:
      - ./mysql/conf:/etc/mysql
      - ./mysql/data:/var/lib/mysql
      - ./mysql/logs:/var/log/mysql
    command: [
      "--character-set-server=utf8mb4",
      "--collation-server=utf8mb4_unicode_ci",
      "--default-time_zone=+8:00",
      "--max_connections=1024"
    ]
    restart: unless-stopped
  # redis
  redis:
    image: redis
    ports:
      - 6379:6379
    container_name: redis
    privileged: true
    command: redis-server --appendonly yes --requirepass 123456 #设置密码
    volumes:
      - ./redis/data:/data
      - ./redis/conf/redis.conf:/etc/redis/redis.conf:ro
    restart: unless-stopped
  hansu-server:
    build:
     #这是指定dockerfile的文件路径
      context: /root/nginx-docker/your-api/
      dockerfile: Dockerfile
    image: hansu:latest
    container_name: yourapiname
    restart: always
    privileged: true
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
        max-file: "3"
    depends_on :
      - redis
    #如果有文件需要处理,需要将宿主机的文件目录挂载进容器中
    volumes:
      - /root/nginx-docker/your-api:/opt/app:rw
    #如果和宿主机共用一个网络,就不需要设置端口,不然就使用默认网桥模式
    network_mode: host

 

Caddyfile

your-api.cn {
    reverse_proxy localhost:8080
}

your-static.cn {
    root * /var/www/your-static.cn
    file_server
    encode gzip
    #添加缓存控制
    header {
        Cache-Control "public, max-age=604800"
    }
    # 禁止目录访问
    file_server {
        hide dotfiles
        browse disable
    }    
    # 可选:添加日志
    log {
        output file /var/log/caddy/static.access.log
    }    
    # 可选:启用HTTPS自动续期
    tls yourmail@mail.com
}

nginx.conf

events {
    worker_connections 1024;  # 每个 worker 进程的最大连接数
}

http {
    server {
        listen 8080;  # 容器内部监听 80 端口
        #server_name your-minio.cn;
        location / {
          #root /usr/share/nginx/html;  # 指定静态文件目录
          # index index2.html;  # 默认首页
          proxy_pass http://127.0.0.1:9001;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
       }
    }

    server {
      listen 8081; # 监听的端⼝
      server_name 127.0.0.1;# 域名或ip
      root /usr/share/nginx/html/dist-prod;
      location / {
        try_files $uri $uri/ @router;
        index  index.html;
      }
      location @router{
        rewrite ^.*$ /index.html last;
      }

      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
        root   html;
      }
    }
}

使用命令:

 命令	                说明

docker-compose up	启动所有服务(前台运行)
docker-compose up -d	后台启动所有服务(守护进程模式)
docker-compose down	停止并删除所有容器、网络、卷
docker-compose down -v	同时删除挂载的卷(volumes)
docker-compose ps	查看当前运行的服务状态
docker-compose logs	查看所有容器的日志
docker-compose logs -f <service>	实时跟踪某个服务的日志(Ctrl+C 退出)
docker-compose exec <service> <command>	在运行的容器中执行命令(如 docker-compose exec app bash)
docker-compose build	构建或重新构建服务镜像
docker-compose pull	拉取服务所需的镜像

 

搜索