Как подключить услугу flask к mysql в docker рою? - PullRequest
0 голосов
/ 18 марта 2020

Мы с коллегой пытаемся развернуть службу flask и службу mysql с docker роем. У нас есть файл YAML для docker start с именем " flask_stack1.yml ". Содержимое выглядит следующим образом:

version: '3.7'

services:
  db:
    deploy:
     replicas: 3
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: "demo"
    volumes: 
      - "./db:/var/lib/mysql"
      - "./init:/docker-entrypoint-initdb.d/"  
    ports: 
      - "3306:3306"
    networks:
      - flask_storage_mysql
  web:
    depends_on:
      - db
    deploy:
      replicas: 1
    image: flask_storage2
    ports:
      - "5000:5000"
    networks:
      - flask_storage_mysql
volumes:
    mysql_data:
networks:
    flask_storage_mysql:
      driver: overlay

И мы запускаем файл стека с помощью команды

docker stack deploy -c flask_stack1.yml demo

То, что у меня в flask для подключения mysql, равно

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:demo@pdf:3306/storage'

Я думаю, что проблема находится в аргументе выше. Мне нужно дать точное имя хоста, но я не знаю, как это сделать виртуально, потому что когда мы напишем " имя_контейнера: pdf ", вывод будет " установка имени контейнера не поддерживается ».

Обе службы могут работать, но мы просто не можем получить доступ к базе данных через страницу flask. Список услуг выглядит следующим образом:

ID                  NAME                MODE                REPLICAS            IMAGE                   PORTS
c52q6ew7wxel        demo_mysql          replicated          0/1                 mysql:latest            *:3306->3306/tcp
pmr5npbipwjg        demo_web            replicated          1/1                 flask_storage2:latest   *:5000->5000/tcp

А список docker выглядит следующим образом:

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                 NAMES
750c03862569        flask_storage2:latest   "python run.py"          48 seconds ago      Up 46 seconds       5000/tcp              demo_web.1.wpr34h2arduf0yveyvt98ajii
f83921a8ecac        mysql:latest            "docker-entrypoint.s…"   51 seconds ago      Up 49 seconds       3306/tcp, 33060/tcp   demo_mysql.1.zpalrajlewijbm0j1apufo4tu
de964bec669b        497d471d6c48            "python SWI-main.py"     3 hours ago         Up 3 hours                                k8s_swimain_swimain1-7754b6f4bd-kvmf7_d

Может ли кто-нибудь помочь? Спасибо.

...