@HexUserHex

Что не так в моем docker-compose?

Пробую создать дополнительную базу и админа для нее в одном сервисе своего docker-compose.
Но есть синтаксическая ошибка в скрипте... усыпаю и не вижу где))

version: "3.0"
services:
   db:
    image: mysql:5.7
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=rootpass
      - MYSQL_USER=superroot
      - MYSQL_PASSWORD=superpass123
      - MYSQL_DATABASE=gitea
    entrypoint:
      sh -c "echo 'CREATE DATABASE IF NOT EXISTS nextcloud; CREATE USER 'tester'@'localhost' IDENTIFIED BY 'superpass123';\
              GRANT ALL PRIVILEGES ON * . * TO 'tester'@'localhost'; 'FLUSH PRIVILEGES'; > /docker-entrypoint-initdb.d/init.sql;\
             /usr/local/bin/docker-entrypoint.sh --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci"
    #iiworks:
    #  - gitea
    volumes:
      - /var/lib/docker/volumes/mysql:/var/lib/mysql
    ports:
      - 3306:3306
  • Вопрос задан
  • 555 просмотров
Пригласить эксперта
Ответы на вопрос 3
HexUserHex то что вы написали в ENTRYPOINT попробуйте запустить и увидите проблемы с кавычками вокруг SQL.
напр
sh -c "echo \"'A' = 'B'\" | tee /dev/null"

даст
'A' = 'B'
sh -c "echo ''A' = 'B'' | tee /dev/null"
даст
A = B
Ответ написан
@vitaly_il1
DevOps Consulting
Мне кажется, проще скопировать init.sql в image а не генерировать при каждом запуске.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы