I am developing a small application using springboot with maven and a mysql db. I created a Dockerfile that’s working and the docker-compose seems to start but an error occur:
Error executing DDL “create table acquisti (id integer not null
auto_increment, data_acquisto datetime not null, email varchar(255)
not null, id_scheda integer not null, token varchar(255) not null,
primary key (id)) type=MyISAM” via JDBC Statement
the same happen for every entity present
here my docker-compose
version: '3.8'
services:
app:
image: jayaz98/angelodaleotest:0.0.1
ports:
- 8080:8080
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/angelodaleoptdb?autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
SPRING_DATASOURCE_USERNAME: admin
SPRING_DATASOURCE_PASSWORD: root
depends_on:
db:
condition: service_healthy
db:
image: mysql:8.0.27
environment:
DATABASE_HOST: docker-mysql
DATABASE_PORT: 3306
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: angelodaleoptdb
MYSQL_USER: admin
MYSQL_PASSWORD: root
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
retries: 5
timeout: 5s
Entities
AcquistiEntity
package it.angeloDaleoPt.project.entity;
import lombok.Data;
import javax.persistence.*;
import java.time.LocalDateTime;
@Entity
@Table(name = "acquisti")
@Data
public class AcquistiEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "email", nullable = false)
private String email;
@Column(name = "id_scheda", nullable = false)
private Integer idScheda;
@Column(name = "token", nullable = false, unique = true)
private String token;
@Column(name = "data_acquisto", nullable = false)
private LocalDateTime dataAcquisto;
}
AppuntamentoEntity
package it.angeloDaleoPt.project.entity;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "appuntamento")
@Data
public class AppuntamentoEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "nome", nullable = false)
private String nome;
@Column(name = "cognome", nullable = false)
private String cognome;
@Column(name = "sesso", nullable = false)
private String sesso;
@Column(name = "num_telefono", nullable = false)
private String numTelefono;
@Column(name = "email", nullable = false)
private String email;
@Column(name = "eta", nullable = false)
private Integer eta;
@Column(name = "anni_esperienza", nullable = false)
private Integer anniEsperienza;
@Column(name = "esperienza_app_calorie", nullable = false)
private String esperienzaAppCalorie;
@Column(name = "num_allenamenti", nullable = false)
private Integer numAllenamenti;
@Column(name = "ore_allenamento", nullable = false)
private Integer oreAllenamento;
@Column(name = "problemi_fisici", nullable = false, columnDefinition = "TEXT")
private String problemiFisici;
@Column(name = "ciclo_regolare", nullable = false)
private String cicloRegolare;
@Column(name = "dieta", nullable = false, columnDefinition = "MEDIUMTEXT")
private String dieta;
@Column(name = "allenamento", nullable = false, columnDefinition = "MEDIUMTEXT")
private String allenamento;
@Column(name = "personal", nullable = false)
private String personal;
}
PrimadopoEntity
package it.angeloDaleoPt.project.entity;
import java.time.LocalDateTime;
import lombok.Data;
import javax.persistence.*;
@Data
@Entity
@Table(name = "primadopo")
public class PrimadopoEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "nome", nullable = false)
private String nome;
@Column(name = "percorso", nullable = false)
private String percorso;
@Column(name = "data_inserimento")
private LocalDateTime dataInserimento;
}
SchedaEntity
package it.angeloDaleoPt.project.entity;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "scheda")
@Data
public class SchedaEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "titolo", nullable = false)
private String titolo;
@Column(name = "descrizione", nullable = false, columnDefinition = "TEXT")
private String descrizione;
@Column(name = "autore", nullable = false)
private String autore;
@Column(name = "prezzo", nullable = false)
private String prezzo;
@Column(name = "pathcopertina")
private String pathcopertina;
}
the problem is that the error does not describe the problem (or maybe I don’t see it). However, in local it works