gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 19:45:42 26 4
gpt4 key购买 nike

我正在尝试通过traefik启动两个具有不同数据库的wikijs容器。我没有启动容器的问题。我可以在子域上启动traefik,甚至可以在不同的子域上启动两个wiki。我的问题如下:每次启动wikijs容器时,我总是以某种方式使用相同的数据库,但我不知道如何更改它。
目的是让我有一些客户希望为其文档提供单独的Wiki。所以我想启动尽可能多的wikijs容器,但最好通过一个docker-compose.yml文件启动。
有人可以告诉我,我做错了吗?谢谢=)
这是我的traefik.toml文件:

defaultEntryPoints = ["http", "https"]

[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[entryPoints.dashboard]
address = ":8080"
[entryPoints.dashboard.auth]
[entryPoints.dashboard.auth.basic]
users = ["admin:$apr1$Ld55R9Cl$/8W5BCc.J/Qtg9Xtpk4lq0"]

[api]
entrypoint="dashboard"

[acme]
email = "email@domain.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
这是我的docker-compose.yml文件:
services:

db:
image: postgres:11-alpine
networks:
- internal
labels:
- "traefik.enable=false"
environment:
POSTGRES_DB: wiki1
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs

logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
db1:
image: postgres:11-alpine
networks:
- internal
labels:
- "traefik.enable=false"
environment:
POSTGRES_DB: wiki2
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs

logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data1:/var/lib/postgresql/data

wiki1:
image: requarks/wiki:2
networks:
- internal
- web
labels:
- "traefik.enable=true"
- "traefik.backend=wiki1"
- "traefik.docker.network=web"
- "traefik.frontend.rule=Host:domain.com"
- "traefik.http.services.wiki.loadbalancer.server.port=3000"

depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wiki
restart: unless-stopped

wiki2:
image: requarks/wiki:2
networks:
- internal
- web
labels:
- "traefik.enable=true"
- "traefik.backend=wiki2"
- "traefik.docker.network=web"
- "traefik.frontend.rule=Host:domain.com" - "traefik.http.services.wiki.loadbalancer.server.port=3000"

depends_on:
- db1
environment:
DB_TYPE: postgres
DB_HOST: db1
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wikispiral
restart: unless-stopped

adminer:
image: adminer:4.6.3-standalone
labels:
- traefik.backend=adminer
- traefik.frontend.rule=Host:domain.com
- traefik.docker.network=web
- traefik.port=8080
networks:
- internal
- web
depends_on:
- db
- db1
volumes:
db-data:
db-data1:
networks:
web:
external: true
internal:
external: false

最佳答案

这两个数据库都在同一网络上:

networks:
- internal
并在同一端口上侦听:
DB_PORT: 5432
因此,将每个数据库放入自己的网络中,然后将该网络添加到Wiki服务中,或者更改其中一个正在侦听的端口。

关于postgresql - 使用一个docker-compose.yml启动两个Wiki js容器,并通过traefik分离数据库(postgres),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63423990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com