Форум по Mysql
Anonymous
MySQL: 8.x развертывание не удается с «-Инициализовать указанное, но в каталоге данных есть файлы в нем» в Docker Swarm
Сообщение
Anonymous » 19 июн 2025, 15:55
Я развертываю стек WordPress + MySQL + PhpMyAdmin с помощью Docker Swarm. Моя настройка включает в себя: < /p>
Docker Swarm (Multi-Node) < /li>
Traefik как обратный прокси < /li>
Общая внешняя сеть для Ingress < /li>
mysql 8.4 (официальное изображение) < /li>
mysql 8.4 (официальное изображение) < /li>
mysql 8.4 (официальное изображение) < /li> < /li>
mysql 8.4 (официальное изображение) < /li>
mysql 8.4. Docker-compose.yml Содержание: < /p>
Код: Выделить всё
version: "3.5"
######### NETWORKS #########
networks:
traefik:
name: proxy_swarm
external: true
######### SERVICES #########
services:
# ---- MYSQL -----
db:
image: mysql:lts
container_name: db
volumes:
- db_data:/var/lib/mysql
env_file:
- ./../.setup.env
secrets:
- db_root_password
- db_app_password
security_opt:
- seccomp=unconfined
- apparmor=unconfined
networks:
- traefik
deploy:
resources:
limits:
cpus: '0.80'
reservations:
cpus: '0.50'
memory: 100M
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 5
window: 120s
labels:
- "traefik.enable=false"
# ---- PHPMYADMIN -----
dba:
image: phpmyadmin/phpmyadmin:latest
container_name: dba
env_file:
- ./../.setup.env
networks:
- traefik
deploy:
resources:
limits:
cpus: '0.80'
reservations:
cpus: '0.05'
memory: 100M
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 5
window: 120s
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.constraint-label=traefik-swarm"
- "traefik.http.routers.dba.rule=HOST(`dba.example.com`)"
- "traefik.http.routers.dba.entrypoints=web"
- "traefik.http.routers.dba.middlewares=redirectHttpDba"
- "traefik.http.routers.dba_secure.rule=HOST(`dba.example.com`)"
- "traefik.http.routers.dba_secure.entrypoints=websecure"
- "traefik.http.routers.dba_secure.service=dba"
- "traefik.http.routers.dba_secure.tls.certresolver=traefik-cert-resolver"
- "traefik.http.services.dba.loadbalancer.server.port=80"
- "traefik.http.middlewares.redirectHttpDba.redirectscheme.scheme=https"
- "traefik.http.middlewares.redirectHttpDba.redirectscheme.permanent=true"
# ---- WORDPRESS -----
app:
image: wordpress:latest
container_name: app
volumes:
- app_content:/var/www/html/wp-content
- ./../uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
env_file:
- ./../.setup.env
secrets:
- db_app_password
networks:
- traefik
deploy:
resources:
limits:
cpus: '0.80'
reservations:
cpus: '0.05'
memory: 100M
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 5
window: 120s
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.constraint-label=traefik-swarm"
- "traefik.http.routers.app.rule=HOST(`app.example.com`)"
- "traefik.http.routers.app.entrypoints=web"
- "traefik.http.routers.app.middlewares=redirectHttpApp"
- "traefik.http.routers.app_secure.rule=HOST(`app.example.com`)"
- "traefik.http.routers.app_secure.entrypoints=websecure"
- "traefik.http.routers.app_secure.service=app"
- "traefik.http.routers.app_secure.tls.certresolver=traefik-cert-resolver"
- "traefik.http.services.app.loadbalancer.server.port=80"
- "traefik.http.middlewares.redirectHttpApp.redirectscheme.scheme=https"
- "traefik.http.middlewares.redirectHttpApp.redirectscheme.permanent=true"
######### SECRETS #########
secrets:
db_root_password:
file: ./../env_vars/.db_root_password
db_app_password:
file: ./../env_vars/.db_app_password
######### VOLUMES #########
volumes:
db_data:
app_content:
< /code>
Что работает: < /h2>
Полный стек работает без проблем на моей локальной машине, даже используя режим Docker Swarm (Docker Deploy). MySQL 5.7 также работает без каких -либо специальных флагов.[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
[ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable.
Что я пробовал:
Использование с именованными томами (Volume_Name:/var/lib/mysql) - нет привязки
Удаление объема Docker rm) и даже Ormancy wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -w /var/lib/docker/volumes/..../_data>
Проверка папки данных полностью пуста перед запуском
Добавление Security_opt, чтобы попытаться соответствовать - -privialeged behavior:
.Код: Выделить всё
security_opt:
- seccomp=unconfined
- apparmor=unconfined
Попробуя Mounts TMPFS ON/var/lib/mysql
Предварительное создание тома и его чистка по-прежнему приводит к той же ошибке
[*] Неудача происходит только в Swarm < /p>
< /li>
Похоже, что громкость предварительно получает докер (возможно, из тома по умолчанию изображения), что вызывает инициализируемый шаг MySQL, чтобы отбить < /p>
< /li>
Вопрос < /h2>
Какой правильный способ развернуть MySQL 8.4 в Docker Swarm без использования-привилегированного и без удара по ошибке каталога-инициализации данных? /var/lib/mysql?
Полностью воспроизводите поведение-привилегированного в стеке? /> Любое руководство от тех, кто управляет MySQL 8.x в производстве на рои.>
Подробнее здесь:
https://stackoverflow.com/questions/796 ... irectory-h
1750337757
Anonymous
Я развертываю стек WordPress + MySQL + PhpMyAdmin с помощью Docker Swarm. Моя настройка включает в себя: < /p> [list] [*] Docker Swarm (Multi-Node) < /li> Traefik как обратный прокси < /li> Общая внешняя сеть для Ingress < /li> mysql 8.4 (официальное изображение) < /li> mysql 8.4 (официальное изображение) < /li> mysql 8.4 (официальное изображение) < /li> < /li> mysql 8.4 (официальное изображение) < /li> mysql 8.4. Docker-compose.yml Содержание: < /p> [code]version: "3.5" ######### NETWORKS ######### networks: traefik: name: proxy_swarm external: true ######### SERVICES ######### services: # ---- MYSQL ----- db: image: mysql:lts container_name: db volumes: - db_data:/var/lib/mysql env_file: - ./../.setup.env secrets: - db_root_password - db_app_password security_opt: - seccomp=unconfined - apparmor=unconfined networks: - traefik deploy: resources: limits: cpus: '0.80' reservations: cpus: '0.50' memory: 100M restart_policy: condition: on-failure delay: 5s max_attempts: 5 window: 120s labels: - "traefik.enable=false" # ---- PHPMYADMIN ----- dba: image: phpmyadmin/phpmyadmin:latest container_name: dba env_file: - ./../.setup.env networks: - traefik deploy: resources: limits: cpus: '0.80' reservations: cpus: '0.05' memory: 100M restart_policy: condition: on-failure delay: 5s max_attempts: 5 window: 120s labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.constraint-label=traefik-swarm" - "traefik.http.routers.dba.rule=HOST(`dba.example.com`)" - "traefik.http.routers.dba.entrypoints=web" - "traefik.http.routers.dba.middlewares=redirectHttpDba" - "traefik.http.routers.dba_secure.rule=HOST(`dba.example.com`)" - "traefik.http.routers.dba_secure.entrypoints=websecure" - "traefik.http.routers.dba_secure.service=dba" - "traefik.http.routers.dba_secure.tls.certresolver=traefik-cert-resolver" - "traefik.http.services.dba.loadbalancer.server.port=80" - "traefik.http.middlewares.redirectHttpDba.redirectscheme.scheme=https" - "traefik.http.middlewares.redirectHttpDba.redirectscheme.permanent=true" # ---- WORDPRESS ----- app: image: wordpress:latest container_name: app volumes: - app_content:/var/www/html/wp-content - ./../uploads.ini:/usr/local/etc/php/conf.d/uploads.ini env_file: - ./../.setup.env secrets: - db_app_password networks: - traefik deploy: resources: limits: cpus: '0.80' reservations: cpus: '0.05' memory: 100M restart_policy: condition: on-failure delay: 5s max_attempts: 5 window: 120s labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.constraint-label=traefik-swarm" - "traefik.http.routers.app.rule=HOST(`app.example.com`)" - "traefik.http.routers.app.entrypoints=web" - "traefik.http.routers.app.middlewares=redirectHttpApp" - "traefik.http.routers.app_secure.rule=HOST(`app.example.com`)" - "traefik.http.routers.app_secure.entrypoints=websecure" - "traefik.http.routers.app_secure.service=app" - "traefik.http.routers.app_secure.tls.certresolver=traefik-cert-resolver" - "traefik.http.services.app.loadbalancer.server.port=80" - "traefik.http.middlewares.redirectHttpApp.redirectscheme.scheme=https" - "traefik.http.middlewares.redirectHttpApp.redirectscheme.permanent=true" ######### SECRETS ######### secrets: db_root_password: file: ./../env_vars/.db_root_password db_app_password: file: ./../env_vars/.db_app_password ######### VOLUMES ######### volumes: db_data: app_content: < /code> Что работает: < /h2> Полный стек работает без проблем на моей локальной машине, даже используя режим Docker Swarm (Docker Deploy). MySQL 5.7 также работает без каких -либо специальных флагов.[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting. [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. [/code] Что я пробовал: Использование с именованными томами (Volume_Name:/var/lib/mysql) - нет привязки Удаление объема Docker rm) и даже Ormancy wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -wip -w /var/lib/docker/volumes/..../_data> [*] Проверка папки данных полностью пуста перед запуском [*] Добавление Security_opt, чтобы попытаться соответствовать - -privialeged behavior: .[code]security_opt: - seccomp=unconfined - apparmor=unconfined [/code] [*] Попробуя Mounts TMPFS ON/var/lib/mysql [*] Предварительное создание тома и его чистка по-прежнему приводит к той же ошибке [/list] [*] Неудача происходит только в Swarm < /p> < /li> Похоже, что громкость предварительно получает докер (возможно, из тома по умолчанию изображения), что вызывает инициализируемый шаг MySQL, чтобы отбить < /p> < /li> Вопрос < /h2> Какой правильный способ развернуть MySQL 8.4 в Docker Swarm без использования-привилегированного и без удара по ошибке каталога-инициализации данных? /var/lib/mysql? Полностью воспроизводите поведение-привилегированного в стеке? /> Любое руководство от тех, кто управляет MySQL 8.x в производстве на рои.> Подробнее здесь: [url]https://stackoverflow.com/questions/79671243/mysql8-x-deployment-fails-with-initialize-specified-but-the-data-directory-h[/url]