Docker Compose успешно выполнен, никаких предупреждений нет, но таблица не существует в базе данныхJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Docker Compose успешно выполнен, никаких предупреждений нет, но таблица не существует в базе данных

Сообщение Anonymous »

В процессе разработки я пытаюсь создать работающий файл Docker Compose, который сможет успешно соединить контейнер MySQL и контейнер Spring Boot.
docker-compose.yml

Код: Выделить всё

services:
backend:
build:
context: ./backend/
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
db:
condition: service_healthy
environment:
- SPRING_DATASOURCE_URL=jdbc:mysql://db:3306/${MYSQL_DATABASE}
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD}
networks:
- springboot-mysql-network
db:
image: mysql:8.0.36
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
volumes:
- mysql-data:/var/lib/mysql
networks:
- springboot-mysql-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 3s
timeout: 30s
retries: 10

volumes:
mysql-data:
networks:
springboot-mysql-network:
name: springboot-mysql-network
application.properties

Код: Выделить всё

spring.application.name=backend

# Datasource connection
spring.datasource.url=${SPRING_DATASOURCE_URL}
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# Hibernate
spring.jpa.hibernate.ddl-auto=create
spring.jpa.generate-ddl=true
build.gradle

Код: Выделить всё

plugins {
id 'java'
id 'org.springframework.boot' version '3.2.8'
id 'io.spring.dependency-management' version '1.1.6'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-devtools:3.2.0'
implementation 'mysql:mysql-connector-java:8.0.28'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
useJUnitPlatform()
}
бэкэнд/Dockerfile

Код: Выделить всё

FROM openjdk:17-alpine
RUN addgroup -S appuser && adduser -S appuser -G appuser
USER appuser:appuser
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
Когда я не использую контейнер MySQL, а вместо этого использую экземпляр MySQL, работающий на вашем хост-компьютере, таблица создается успешно. Однако при попытке использовать контейнер MySQL создание таблицы, похоже, не удается.

Подробнее здесь: https://stackoverflow.com/questions/790 ... exist-in-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»