docker+traefik配置mysql + panel
阅读时长:1 min
先上配置文件代码:
services: redis: restart: always image: redis:latest container_name: sspanel_redis
command:
- --loglevel warning
volumes:
- ./redis\_data:/var/lib/redis:Z
db:
image: mysql:5.7
restart: always
container\_name: sspanel\_db
environment:
- MYSQL\_DATABASE=\*\*\*\*
- MYSQL\_ROOT\_PASSWORD=\*\*\*\*
labels:
- traefik.enable=false
volumes:
- ./mysql/data:/var/lib/mysql
networks:
- back-end
ss-panel:
image: orvice/ss-panel:master
labels:
- traefik.backend=ss-panel
- traefik.frontend.rule=Host:\*\*\*\*\*\*\*\*
- traefik.port=80
- traefik.docker.network=traefik
container\_name: ss-panel
depends\_on:
- redis
- db
- traefik
environment:
- MIGRATION=true
- ADMIN\_EMAIL=\*\*\*\*
- ADMIN\_PASS=\*\*\*\*
- APP\_LANG=en
- AUTH\_SALT=
- AUTH\_PASSWORD\_ENCRYPTION\_TYPE=bcrypt
- DB\_HOST=db
- DB\_DATABASE=\*\*\*\*
- DB\_USERNAME=\*\*\*\*
- DB\_PASSWORD=\*\*\*\*
- REDIS\_HOST=redis
networks:
- back-end
- traefik
networks: traefik: external: true back-end: external: false
这里边关键的地方有两个,一个是建立两条并行的网络,将panel端分配到两个网络中,将mysql分配到back-end网络中。另外一个是需要将panel端的labels中加入traefik.docker.network=traefik,否则会发生路由错误。不知道为什么会出现这个错误,traefik中的路由原理还没有弄明白,以后在研究。
首先是填写必要信息,安装mysql后要docker exec -it 进去看一下mysql能否正常登陆。本人默认pull的mysql8.0莫名其妙登陆不上去,改成了5.7。运行起来以后看一下mysql的log是否正常。然后看一下panel的log是否正常,能否连接到数据库。如果报错SQLSTATE[HY000] [2002] Connection refused 八成是网络路由没有配置正确。