Я работаю с Spring Boot, MariaDB, H2 и Docker. Моя конфигурация работала на Docker до того, как у меня была база данных h2 для моих локальных тестов.
Я пытаюсь запустить Mariadb на docker и H2 на локальном компьютере. Для этого у меня есть эта настройка в моей папке ресурсов:
- Одно application.properties, используемое для docker
- Одно application-h2.properties, используемое для моих локальных тестов
- Одни данные. sql для каждой БД
- Одна схема. sql для каждой БД
введите здесь описание изображения
Я запускаю простой CREATE TABLE в моем schema-xx. sql и несколько INSERT INTO в моем data-xx. sql. На моем локальном компьютере мои тесты работают нормально, H2 создан и заполнен данными.
На docker моя таблица создана, но пуста.
Вот мой файл Docker:
#### Stage 1: Build the application
FROM openjdk:8-jdk-alpine as build
# Set the current working directory inside the image
WORKDIR /app
# Copy maven executable to the image
COPY mvnw .
COPY .mvn .mvn
# Copy the pom.xml file
COPY pom.xml .
# Build all the dependencies in preparation to go offline.
# This is a separate step so the dependencies will be cached unless
# the pom.xml file has changed.
RUN ./mvnw dependency:go-offline -B
# Copy the project source
COPY src src
# Package the application
RUN ./mvnw package -DskipTests
RUN mkdir -p target/dependency && (cd target/dependency; jar -xf ../*.jar)
#### Stage 2: A minimal docker image with command to run the app
FROM openjdk:8-jre-alpine
ARG DEPENDENCY=/app/target/dependency
# Copy project dependencies from the build stage
COPY --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY --from=build ${DEPENDENCY}/META-INF /app/META-INF
COPY --from=build ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.example.website.WebsiteApplication"]
А вот мой docker -compose.yml:
version: '3'
services:
mariadb:
container_name: mariadb
image: mariadb
environment:
MYSQL_DATABASE: website
MYSQL_USER: test
MYSQL_PASSWORD: root
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: '%'
ports:
- "3306:3306"
restart: always
workaround:
container_name: website-spring-back
image: website-spring-container
depends_on:
- mariadb
restart: on-failure
# will build ./docker/workaround/Dockerfile
build:
context: .
dockerfile: Dockerfile
ports:
- "8081:8080"
command: "mvn clean spring-boot:run"
Есть идеи, почему?