首页
学习
活动
专区
工具
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进行反向代理和负载均衡。

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

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

相关·内容

Kubernetes搭建wikijs

关于数据库wikijs支持很多种: DB_TYPE : 数据库类型 ( mysql, postgres, mariadb, mssqlor sqlite)参照官方文档:https://docs.requarks.io...这里db_type我就使用了mysql了(开发要求,个人没有什么要求的其实)。数据库直接使用了某云的rds数据库最低配置一核心1G内存。...当然了提前创建好wikijs库,对内网服务器进行授权 [image.png] root@iZ2zeasfsez3jz7eu7iuh2Z wiki# cat wiki-config.yaml apiVersion...这算是一个常识吧! 4. 关于服务的对外暴露与访问 正常的是作一个ClusterIP 然后使用traefik对外映射服务绑定域名!...关于traefik参照:Kubernetes 1.20.5 安装traefik在腾讯云下的实践。我这里某云还没有备案....直接使用了nodeport的方式!

68251

如何在CentOS7部署Wiki.js知识库实现分享好友公网远程使用【内网穿透】

不管是在企业中还是在自己的个人知识整理上,我们都需要通过某种方式来有条理的组织相应的知识架构,那么一个好的知识整理工具是非常重要的,今天推荐一款维基知识库系统——Wiki.js。...首先创建一个 dockers-compose.yml文件 mkdir compose 进入目录中 cd compose/ 编写 docker-compose.yml 文件内容,复制以下内容(注意容器的用户名密码和数据库的要一致...POSTGRES_PASSWORD: wikijsrocks POSTGRES_USER: wikijs logging: driver: "none"...本地服务器打开Wiki.js添加知识库内容 打开一个新的浏览器,输入本机IP:3000,进行初始配置 输入管理员的邮箱、密码,访问地址,设置是否匿名反馈使用情况 创建完成后跳转到登录页面,输入刚才创建的管理员账号密码登录...实现公网访问Wiki.js 上面在本地Docker中成功部署了Wiki.js,局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过Cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问

7600

使用 Mastodon 搭建个人信息平台:前篇

出于上面的考虑,我们可以执行命令,创建一个额外的虚拟网卡进行组件之间的通讯打通: docker network create mastodon_networks 搭建数据库Postgres 官方配置文件中...EU 上,Oleg Bartunov 曾经做过一个分享,关于使用 Postgres 在全文检索场景的使用,感兴趣可以自行了解。...docker-compose up -d 启动一个 Mastodon 安装就绪的容器备用。...官方这里有一个默认的模版,https://github.com/mastodon/mastodon/blob/main/dist/nginx.conf,不过这个配置适用于不使用容器、或者应用都运行在容器...有的人会使用 chmod 777 大法解决问题,然而这个并不是一个最佳实践:存在潜在的安全问题,并且让你的应用水平扩展的能力变得很差。 当然,还有一些细节问题,我们稍后再处理,先处理以上两个问题。

1.8K31

如何在Ubuntu上使用Traefik作为Docker容器的反向代理

在本教程中,您将使用Traefik请求路由到两个不同的Web应用程序容器:Wordpress容器和Adminer容器,每个容器都与MySQL数据库通信。...但在我们启动运行Traefik容器之前,我们需要创建配置文件设置加密密码,以便我们可以访问监控仪表板。 我们将使用htpasswd实用程序创建此加密密码。...这会减慢第一个请求速度使访问者可见,所以我们会避免这种情况。 保存文件退出编辑器。有了所有这些配置,我们就可以启动Traefik了。...然后我们定义另一个网络,以便我们可以将我们公开的容器连接到我们不会通过Traefik公开的数据库容器。我们称之为网络internal。 接下来,我们将逐个定义services。...我们将此容器分配给两个不同的网络,以便Traefik可以通过proxy网络找到它,并且可以通过网络与数据库容器进行internal通信。

2.3K40

如何使用Docker Compose

就像运行单个容器一样docker run,该-d标志以分离模式启动容器。 您现在在主机上运行了WordPress容器和MySQL容器。...您还可以使用docker ps进一步探索生成的配置: docker ps 停止移除容器: docker-compose down 撰写文件语法 一个docker-compose.yml文件被分为四个部分...数据库服务器包含postgres容器的指令volumes: - .....重要的是要注意postgres容器在命令下读取“docker-entrypoint ...”。Postgres Docker入口点脚本是容器启动启动的最后一件事。...第一个指令在容器中设置运行时级别选项。links在容器之间创建依赖关系网络。nginx容器依赖于其他两个来执行。此外,可以在别名指示的主机名处访问相应的容器

3.8K20

如何在Ubuntu 18.04上使用Traefik作为Docker容器的反向代理

在本教程中,您将使用Traefik将请求路由到两个不同的Web应用程序容器:Wordpress容器和Adminer容器,每个容器都与MySQL数据库通信。...但在我们启动运行Traefik容器之前,我们需要创建配置文件设置加密密码,以便我们可以访问监控仪表板。 我们将使用该htpasswd实用程序创建此加密密码。...使用官方Adminer映像的数据库管理服务器。 我们将使用Docker Compose使用docker-compose.yml文件管理这两个应用程序。...然后我们定义另一个网络,以便我们可以将我们公开的容器连接到我们不会通过Traefik公开的数据库容器。我们称之为网络internal。 接下来,我们将定义每一个services。...我们将此容器分配给两个不同的网络,以便Traefik可以通过web网络找到它,并且可以通过internal网络与数据库容器进行通信。

2.1K74

使用 Helm 部署 Wikijs

比较版本 可视化地比较同一页面的两个版本,以查看更改的确切内容。 导出 / 切换分支 快速导出页面的特定版本或从旧版本创建新页面。...数学表达 使用 TeX 或 MathML 语法渲染复杂的数学表达。 搜索 数据库 wiki.js附带了一个内置的搜索引擎。它需要零设置,是大多数用户的最佳选择。...介绍 此图表使用Helm包管理器在Kubernetes群集上启动wiki.js部署。 它还可选地将PostgreSQL打包为数据库,但您可以自由携带自己的数据库。...如果你有一个可用的 ingress 控制器,如Nginx 或 Traefik,你可能想设置ingress.enabled为真,并为URL选择一个ingress.hostname。...en.json和zh.json放到容器中的指定目录: /wiki/data/sideload.

1.9K10

使用Kompose从Docker Compose 迁移到 Kubernetes

然后,使用单个命令,您可以从配置中创建启动所有服务。” Compose是Docker提供的解决方案,用于轻松快速地构建完整的应用程序堆栈。...image.png Kubernetes Kubernetes引擎使用通过配置文件描述的资源声明系统。它允许您创建、配置和链接资源。...因此,这些必须单独声明,因为它们与应用程序部分分离。 应用上面示例中给出的配置不允许直接启动应用程序。...此外,将模拟容器配置traefik ,以便在功能上对应于所请求的内容:在特定端口上打开的服务,允许在容器中的给定端口上接收请求。...但是,在 Kubernetes 集群上部署第二个相同类型的堆栈,使用一个 Traefik 实例,会报错:此处使用的端口 443已被部署的第一个堆栈占用。

3.5K30

K8S 部署 RSS 全套自托管解决方案

RSS 是一种描述和同步网站内容的格式,是使用最广泛的 XML 应用。RSS 搭建了信息迅速传播的一个技术平台,使得每个人都成为潜在的信息提供者。...两个目的:通过 RSS 和 RSS 阅读器作为高效率的 Feed 集合器,免去每日浏览各个网站搜寻信息的时间,发现优质内容,提高阅读效率。...PVC 存储,用于存放 icontiny tiny rss 的 数据库 - postgresql 13, 需要有一个 PVC 存储,用于存放数据库数据。...(本文 K8S 集群默认提供 local-path storageclass)本次 2 个域名通过 K8S Traefik 的 IngressRoute 进行配置,配置 Ingress 和 证书; ️...使用 kompose 转换命令如下:在 docker-compose.yml 所在目录下执行:kompose convert -o .

1.1K51

使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)

数据库升级 当时示例中的数据库postgres,也从 10.1 升级到了 12.1,因为跨了大版本,数据文件不兼容。如果要升级,需要先将数据导出,再重新导入。...所以如果你已经在使用 Miniflux,并且没有使用云服务商的数据库,而是使用文章示例中的数据库方案,请不要直接修改配置,升级数据库版本,单独升级应用就好了。...=secret networks: traefik: external: true 将内容保存为 docker-compose.yml 后,使用 docker-compose up -d...启动应用,稍等片刻看到下面的内容的时候,就说明应用启动完毕了。...启动过程中可能遇到 miniflux_miniflux_1 exited with code 1 的报错,这是因为 depends_on 仅检查依赖数据库是否启动,而不检查数据库是否 ready for

80400

使用 Docker 和 Traefik v2 搭建 RSS 服务(Miniflux)

数据库升级 当时示例中的数据库postgres,也从 10.1 升级到了 12.1,因为跨了大版本,数据文件不兼容。如果要升级,需要先将数据导出,再重新导入。...所以如果你已经在使用 Miniflux,并且没有使用云服务商的数据库,而是使用文章示例中的数据库方案,请不要直接修改配置,升级数据库版本,单独升级应用就好了。...应用配置 单机使用的完整配置依旧很简单,如果你使用云服务商的数据库,可以删除掉: version: '3' services: miniflux: image: miniflux/miniflux...=secret networks: traefik: external: true 将内容保存为 docker-compose.yml 后,使用 docker-compose up-d 启动应用...启动过程中可能遇到 miniflux_miniflux_1 exitedwithcode1 的报错,这是因为 depends_on 仅检查依赖数据库是否启动,而不检查数据库是否 readyforconnection

64110

Wiki.js开源免费wiki程序安装与使用教程-界面简洁美观支持多种编辑器

推荐使用Oneinstack一键包或者LNMP一键安装包,不仅支持单独安装Nginx,还可以很方便地绑定域名,给域名申请免费SSL证书。...二、Wiki.js安装与配置2.1 一键安装进入VPS,然后新建一个目录。cd ~mkdir wikijscd wikijs然后是新建一个yml。...: wikijsrocks POSTGRES_USER: wikijs logging: driver: "none" restart: unless-stopped...四、总结Wiki.js作为一个开源免费的Wiki程序,使用Docker安装的方式是最简单的。...新手朋友可能不喜欢Nginx的域名反代,其实你可以直接使用宝塔面板的反向绑定域名,另外其它的一个VPS主机面板也会有这样的功能,所以整个配置安装还是挺简单的。

11.3K20

Docker & ASP.NET Core (5):Docker Compose

然后根据配置,使用一个命令即可创建运行所有的服务。...这个构建的过程实际上会生成镜像,然后使用这些镜像就可以创建容器了。 ? 然后再使用一个简单的命令,就可以让这些服务启动运行了。 下面简单讲一下这个docker-compose.yml文件: ?...现在我把这两个容器删掉(包括相应的镜像和网络都删掉吧),然后使用docker-compose来实现。 建立docker-compose.yml文件 ? 注意,我还没写完。...这里又添加了postgres-server这个服务,它是直接使用的官方镜像postgres,网络还是同一个网络,但是这里设置了一个环境变量,是数据库的密码。...而过了一会postgres的服务才启动完成。。。 这也很好办,现在postgres的服务起来了,那么,我再手动启动一下ASP.NET Core Web的容器就可以了。

1.5K20

2024程序员容器化上云之旅-第2集-Windows11版:接近深洞

他开始自学Vue3使用SpringBoot3完成了一个前后端分离的Web应用系统,打算将其用Docker容器化后用K8s上云。...✅后来通过读Nigel Poulton的Doker书,他了解到,可以为数据库容器设置一个位于本地硬盘中的volume,以便保存持久化的数据。...他知道,这个命令会读取infrastructure文件夹下面的docker-compose.yml文件。根据其中有关postgres和pgadmin服务的配置信息,启动两个服务。...等到屏幕显示两个容器启动了,他切换到docker desktop界面,看到两个容器启动后的界面。如图2。...三个微服务和ingress运行 8.8 清理现场 9 取经归来 当最终把前后端分离的web应用成功部署到azure k8s云集群上,并能顺利使用后,马意浓把整个容器化和上云之旅,写成系列文章,分享给其他程序员

27442

云原生架构下的 API 网关实践: Kong (二)

如果合并两个服务,或者将一个服务拆分成两个或更多服务,这类重构就非常困难了。 服务端的各个服务直接暴露给客户端调用势必会引起各种问题。同时,服务端的各个服务可扩展和伸缩性很差。...这三个容器之间的通信需要增加 network 段,把容器放在同一个网段内,相关链接修改为容器名称来访问: docker network create kong-net 所启动的三个容器服务,除了 Kong...之外的两个服务:konga 是 Kong 的 Dashboard,基于 js 的客户端管理工具,对外暴露的端口为 8080;kong-database 是 Kong 的数据库服务,存储配置信息,这里使用的是...需要注意的是,在启动 Kong 容器之前,需要保持数据库的 Docker 容器在运行状态,执行如下初始化数据库的操作: docker run --rm \ --network=kong-net...bootstrap 数据库初始化成功后,再次启动 docker-compose.yml 服务就可以了。

2K10

2024程序员容器化上云之旅-第2集-Ubuntu-WSL2-Windows11版:接近深洞

他开始自学Vue3使用SpringBoot3完成了一个前后端分离的Web应用系统,打算将其用Docker容器化后用K8s上云。3 挑选工具马意浓画好架构图后,就开始为这次技能升级之旅挑选工具。...之后在本地电脑用简单的一行命令,就能启动相应的容器,来使用数据库及其管理工具。将来卸载或升级,也是运行一行命令的事儿。方便至极。之前马意浓还担心,容器里跑数据库,要是关闭或删除容器,那数据不就丢了。...✅后来通过读Nigel Poulton的Doker书,他了解到,可以为数据库容器设置一个位于本地硬盘中的volume,以便保存持久化的数据。...他知道,这个命令会读取infrastructure文件夹下面的docker-compose.yml文件。根据其中有关postgres和pgadmin服务的配置信息,启动两个服务。...等到屏幕显示两个容器启动了,他切换到docker desktop界面,看到两个容器启动后的界面。如图2。

41884
领券