docker+traefik配置mysql + panel

先上配置文件代码:

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 八成是网络路由没有配置正确。

    See Also