我正在尝试使用Docker Swarm Culster,Traefik和Portainer设置环境。
至少Traefik和Portainer是好的,问题是我的PMA和Maria DB堆栈。
我的pma-db.yml:
version: '3.1'
services:
db:
image: mariadb:10.6
environment:
MYSQL_ROOT_PASSWORD: ********
networks:
- backend
volumes:
- db-data:/db
deploy:
placement:
constraints:
- node.labels.db.db-data == true
phpmyadmin:
image: phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_ABSOLUTE_URI=https://pma.example.com
networks:
- backend
- traefik-public
ports:
- 8081:80
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.pma_phpmyadmin-http.rule=Host(`${DOMAIN?Variable not set}`)
- traefik.http.routers.pma_phpmyadmin-http.entrypoints=http
- traefik.http.routers.pma_phpmyadmin-http.middlewares=https-redirect
- traefik.http.routers.pma_phpmyadmin-https.rule=Host(`${DOMAIN?Variable not set}`)
- traefik.http.routers.pma_phpmyadmin-https.entrypoints=https
- traefik.http.routers.pma_phpmyadmin-https.tls=true
- traefik.http.routers.pma_phpmyadmin-https.tls.certresolver=le
- traefik.http.services.pma_phpmyadmin.loadbalancer.server.port=8081
networks:
traefik-public:
external: true
backend:
external: false
volumes:
db-data:
字符串
当我设置堆栈时,我不能访问pma,有一个错误404找不到。我尝试了很多东西,但仍然不工作。
请问你能帮助我理解为什么这是行不通的?
非常感谢
(我的英语也不好)
我尝试了-traefik.port=80而不是traefik.http.services.pma_phpmyadmin.loadbalancer.server.port=8081,但我使用的是Docker swarm,-trafik.port在swarm环境中不起作用?
我试图删除端口部分,仍然不工作
1条答案
按热度按时间yvt65v4c1#
我已经尝试添加traefik.http.routers.pma_phpmyadmin-https.service=pma_phpmyadmin和它仍然不工作。
我再次尝试了你下面的例子,-> example.com/phpmyadmin和使用路径前缀,但仍然不工作。
为了检查我的http.路由器是否正常工作,我试着用traefik Jmeter 板查看它,traefik看不到我的服务,我还试着部署了一个我在docker swarm rocks docs上找到的堆栈,grafana / prometheus和swarm ready面板,它很好,证书生成了,所有工作都正常。
我不明白为什么它不能只与phpmyadmin工作,我需要做我的工作.