下面是一个使用 Traefik 反向代理部署 WordPress 的 docker-compose.yml 示例:

version: '3'

services:
  traefik:
    image: traefik:latest
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - traefik-network

  wordpress:
    image: wordpress:latest
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.wordpress.rule=Host(`yourdomain.com`)'
      - 'traefik.http.routers.wordpress.entrypoints=web'
      - 'traefik.http.services.wordpress.loadbalancer.server.port=80'
    networks:
      - traefik-network

volumes:
  db-data:

networks:
  traefik-network:
    external: true

在这个示例中,我们定义了 3 个服务:Traefik、MySQL 和 WordPress。Traefik 是反向代理服务器,它会监听 80 端口,并将请求转发到 WordPress 服务。MySQL 服务用于存储 WordPress 的数据库。

WordPress 服务使用标签来告诉 Traefik 如何处理请求。我们为 WordPress 服务启用了 Traefik,并定义了路由规则,使其可以接收来自主机名为 yourdomain.com 的请求。我们还将 WordPress 服务配置为监听 Traefik 的 web 入口点,并将其负载平衡到 80 端口。

注意,我们还将 Traefik 和 WordPress 服务连接到 traefik-network 网络,以便它们可以相互通信。如果您已经有一个名为 traefik-network 的网络,请确保在 docker-compose.yml 文件中将其设置为 external: true。

最后,我们使用 docker-compose up 命令启动服务。Traefik 将监听 80 端口,并将请求转发到 WordPress 服务,使您可以使用 yourdomain.com 访问 WordPress 站点。

使用 Traefik 部署 WordPress 的 Docker Compose 配置

原文地址: https://www.cveoy.top/t/topic/mI0Q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录