首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用一个docker-compose.yml启动两个wikijs容器,并通过traefik分离数据库(postgres)

使用一个docker-compose.yml启动两个wikijs容器,并通过traefik分离数据库(postgres)。

答案:

Docker是一种容器化技术,可以将应用程序及其依赖项打包成一个独立的容器,使其可以在不同的环境中运行。Docker Compose是Docker官方提供的工具,用于定义和管理多个容器的应用程序。

Wiki.js是一个现代化的开源Wiki软件,可以用于创建和管理团队文档、知识库和协作平台。PostgreSQL是一种开源的关系型数据库管理系统。

Traefik是一款开源的反向代理和负载均衡工具,可以用于将请求转发到不同的容器。

下面是一个示例的docker-compose.yml文件,用于启动两个Wiki.js容器,并通过Traefik分离数据库:

代码语言:txt
复制
version: '3'

services:
  wiki1:
    image: requarks/wiki:2
    restart: always
    environment:
      - DB_TYPE=postgres
      - DB_HOST=postgres
      - DB_PORT=5432
      - DB_USER=wiki1
      - DB_PASS=password1
      - DB_NAME=wiki1
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wiki1.rule=Host(`wiki1.example.com`)"
      - "traefik.http.services.wiki1.loadbalancer.server.port=3000"
    depends_on:
      - postgres

  wiki2:
    image: requarks/wiki:2
    restart: always
    environment:
      - DB_TYPE=postgres
      - DB_HOST=postgres
      - DB_PORT=5432
      - DB_USER=wiki2
      - DB_PASS=password2
      - DB_NAME=wiki2
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wiki2.rule=Host(`wiki2.example.com`)"
      - "traefik.http.services.wiki2.loadbalancer.server.port=3000"
    depends_on:
      - postgres

  postgres:
    image: postgres:13
    restart: always
    environment:
      - POSTGRES_USER=wiki
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=wiki

在上述示例中,我们定义了三个服务:wiki1、wiki2和postgres。wiki1和wiki2分别对应两个Wiki.js容器,postgres对应PostgreSQL数据库容器。

Wiki.js容器的环境变量配置了数据库连接信息,包括DB_TYPE、DB_HOST、DB_PORT、DB_USER、DB_PASS和DB_NAME。这些环境变量将用于Wiki.js连接到PostgreSQL数据库。

Traefik的配置通过labels字段实现。我们为每个Wiki.js容器定义了一个Traefik路由规则,将请求转发到相应的容器。同时,我们还指定了Wiki.js容器的端口为3000。

在启动之前,确保已经安装了Docker和Docker Compose。然后,将上述docker-compose.yml文件保存为一个文件,比如docker-compose.yml,然后在该文件所在的目录中执行以下命令启动容器:

代码语言:txt
复制
docker-compose up -d

这将会启动两个Wiki.js容器和一个PostgreSQL容器,并通过Traefik进行反向代理和负载均衡。

请注意,上述示例中的配置仅供参考,实际使用时需要根据具体需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券