[root@localhost oneblog]# cat docker-compose.yml 
version: '3.3'
services:
  blog-nginx:
    image: nginx:alpine
    restart: always
    container_name: blog-nginx
    hostname: blog-nginx
    depends_on:                    # 确保后台和前台服务已启动
      - blog-admin
      - blog-web
    ports:
      - "8888:80"                  # 将宿主机的 8888 端口映射到容器的 80 端口[reference:0]
    volumes:
      - ${ONEBLOG_APP_DIR}/images:/var/www/oneblog/upload:ro
      - ${ONEBLOG_APP_DIR}/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    networks:
      - oneblog
  blog-redis:
    image: redis
    restart: always
    container_name: blog-redis
    hostname: blog-redis
    command: redis-server --appendonly yes --requirepass ${ONEBLOG_REDIS_PASSWORD} --bind blog-redis
    ports:
      - "${ONEBLOG_EXPORT_PORT_REDIS}:6379"
    volumes:
      - ${ONEBLOG_APP_DIR}/redis/:/data/
    healthcheck:
      test: ["CMD", "redis-cli"]
      timeout: 20s
      retries: 10
    networks:
      - oneblog

  blog-mysql:
    image: justauth/blog-mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${ONEBLOG_DATASOURCE_PASSWORD}
      TZ: Asia/Shanghai
    restart: always
    container_name: blog-mysql
    hostname: blog-mysql
    volumes:
      - ${ONEBLOG_APP_DIR}/mysql:/var/lib/mysql
    ports:
      - "${ONEBLOG_EXPORT_PORT_MYSQL}:3306"
    command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      timeout: 20s
      retries: 10
    networks:
      - oneblog

  blog-admin:
    image: justauth/blog-admin
    restart: always
    container_name: blog-admin
    hostname: blog-admin
    env_file:
      - .env
    volumes:
      - ${ONEBLOG_APP_DIR}:/var/tmp/oneblog
    depends_on:
      blog-redis:
        condition: service_healthy
      blog-mysql:
        condition: service_healthy
    links:
      - blog-redis
      - blog-mysql
    ports:
      - "${ONEBLOG_EXPORT_PORT_ADMIN}:8085"
    networks:
      - oneblog

  blog-web:
    image: justauth/blog-web
    restart: always
    container_name: blog-web
    hostname: blog-web
    env_file:
      - .env
    volumes:
      - ${ONEBLOG_APP_DIR}:/var/tmp/oneblog
    depends_on:
      blog-redis:
        condition: service_healthy
      blog-mysql:
        condition: service_healthy
    links:
      - blog-redis
      - blog-mysql
    ports:
      - "${ONEBLOG_EXPORT_PORT_WEB}:8443"
    networks:
      - oneblog

networks:
  oneblog:
    driver: bridge
[root@localhost oneblog]# ls
data  docker-compose.yml
[root@localhost oneblog]# cat .env 
# 数据存储目录(建议修改为你自己的路径,例如 /home/oneblog/data)
ONEBLOG_APP_DIR=/home/oneblog/data

# 对外暴露的端口(可按需修改)
ONEBLOG_EXPORT_PORT_REDIS=63799
ONEBLOG_EXPORT_PORT_MYSQL=33066
ONEBLOG_EXPORT_PORT_ADMIN=8085
ONEBLOG_EXPORT_PORT_WEB=8443

# Redis 配置
ONEBLOG_REDIS_DATABASE_INDEX=1
ONEBLOG_REDIS_HOST=blog-redis
ONEBLOG_REDIS_PORT=6379
ONEBLOG_REDIS_PASSWORD=GcwqemvNoipFX02r3IajYkVzWxJ1uLdK # 请修改为强密码

# MySQL 配置
ONEBLOG_DATASOURCE_HOST=blog-mysql
ONEBLOG_DATASOURCE_PORT=3306
ONEBLOG_DATASOURCE_DATABASE_NAME=dblog
ONEBLOG_DATASOURCE_USERNAME=root
ONEBLOG_DATASOURCE_PASSWORD=4y2B9jdtVfcDwMUIRWn7kqEY8563uzNo # 请修改为强密码

# 邮箱配置(可选,不需要可留空)
ONEBLOG_MAIL_HOST=
ONEBLOG_MAIL_PORT=465
ONEBLOG_MAIL_USERNAME=
ONEBLOG_MAIL_PASSWORD=

# OneBlog 其他配置
ONEBLOG_APP_ENABLE_KAPTCHA=false
ONEBLOG_APP_ENABLE_CHECK_LINK=false
ONEBLOG_APP_ENABLE_PRINT_CONFIG=true
ONEBLOG_ENABLE_REDIS_CACHE=true
[root@localhost oneblog]#
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐