Не удается получить доступ к «/docker-entrypoint-initdb.d/»: операция не разрешена Spring Boot + My SQL + Docker

Ниже упоминается файл docker-compos.yml.

докер-compose.yml

 version: "3.0"
 services:
  api_service:
    build: .
    restart: always
    ports:
      - 8090:8090
    depends_on:
      - mysql_db
    links:
      - mysql_db:app_db
  mysql_db:
    image: "mysql:8.0"
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_DATABASE: test_db
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password

Докерфайл

FROM openjdk:11

EXPOSE 8090

RUN mkdir app

ADD target/test-service-composite-1.0.0.RELEASE.jar /app/test-service-composite.jar

ADD config/application.yml /app/application.yml

ENTRYPOINT ["java","-jar","/app/test-service-composite.jar","--spring.config.location=/app/application.yml"]

приложение.yml

app:
  name: test-service

server:
  port: 8090

spring:
  datasource:
    url: jdbc:mysql://app_db:3306/test_db
    username: user
    password: password
    initialization-mode: always
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL8Dialect
    hibernate:
      ddl-auto: create

Когда я выполняю команду docker-compose up, и служба работает без ошибок. Но после запуска службы появляется сообщение ниже.

ls: невозможно получить доступ к '/docker-entrypoint-initdb.d/': операция не разрешена

Когда я запускаю контейнер, появляется ошибка ниже.

Ошибка ответа от демона: контейнер 11b14cdf51369878501c76085e8fd21316e8a7c26a3ff140196d8674b52c3262 перезапускается, дождитесь запуска контейнера

Я проверил журнал докеров, и появилась та же проблема «Операция не разрешена».

Пожалуйста, помогите мне решить эту проблему. Любая помощь или обходной путь действительно ценятся.

Какой контейнер выдает ошибку? (Если вы полностью удалите контейнер Java, вы получите ту же ошибку?) Прикреплены ли к контейнеру базы данных дополнительные volumes:, которые вы не показали?

David Maze 20.11.2022 12:30

Сообщение об ошибке из вашего контейнера mysql, и я подозреваю, что вы не показываете все свои монтирования/сборки, поскольку это невозможно воспроизвести в стандартном контейнере mysql:8.0.

Zeitounator 20.11.2022 13:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
93
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема заключается в образе my-sql, который определен в файле компоновки докеров. Измените его на указанное ниже изображение, и оно работает нормально.

image: mysql/mysql-server:8.0.27

Другие вопросы по теме