先上配置文件代码:
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 八成是网络路由没有配置正确。