Мой Docker -компонентный файл выглядит следующим образом: служба web
является сервером Flask, а служба mysqldb
ссылается на сервер mysql, работающий в отдельном контейнере:
version: '3'
services:
mysqldb:
image: mysql:8.0.17
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: test
MYSQL_USER: testing
MYSQL_PASSWORD: testing
ports:
- "3308:3306"
web:
restart: always
build:
context: .
dockerfile: Dockerfile
expose:
- "5000"
links:
- mysqldb
ports:
- "5000:5000"
Согласно документации, я должен иметь возможность записать mysqldb
в мой файл flask -service.py как переменную, подобную этой:
...
import mysql.connector
...
print(mysqldb)
mysqlcnx = mysql.connector.connect(user='testing', password='testing', host= mysqldb,
port = '3306',database='test' )
...
Но вместо этого при запуске docker-compose up --build -d
, мои журналы для веб-службы показывают
NameError: name `mysqldb` is not defined
Я просмотрел несколько вопросов о переполнении стека и docker примеров, но не могу найти solid причину, по которой ссылка не работает. Я также попытался импортировать os
и вызывать его, как если бы это была переменная окружения, но безрезультатно.
Спасибо.