[英]Data of MySql Docker Container doesn't persist after docker-compose up
我正在運行兩個 docker 容器:
並且我可以確保數據的持久性,這要歸功於數據量。
那是我的 docker-compose.yml
version: '3'
services:
docker-mysql-activity:
image: mysql:latest
container_name: docker-mysql-activity
volumes:
- mysql_activity:/var/lib/mysql
ports:
- 33061:3306
environment:
- MYSQL_ROOT_PASSWORD=admin123
- MYSQL_DATABASE=SCactivity
- MYSQL_USER=testuser
- MYSQL_PASSWORD=testuser@123
activity-service:
image: activity-service:latest
container_name: activity-service
environment:
- SPRING_APPLICATION_NAME=activity-service
hostname: activity-service
build:
context: ./activity-service
dockerfile: Dockerfile
ports:
- 9001:9001
depends_on:
- service-registry
- docker-mysql-activity
volumes:
mysql_activity:
當我執行doke-compose up一切順利並創建卷時,我已經驗證查看 Docker 的卷文件夾並正確保存數據(所有驗證均通過 postman - GET 和 POST 數據正常工作)。
當我嘗試關閉 docker-compose或停止docker-compose 然后再次啟動 docker-compose 時,會出現問題,數據不再存在。
我確信這個問題與docker-compose down 無關,因為卷仍然存在,而是當我執行命令docker-compose up時重置卷內的數據。
編輯
活動服務是一個 Spring 引導微服務。
它有這個 application.yml:
server:
port: 9001
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://docker-mysql-activity:3306/SCactivity?createDatabaseIfNotExist=true
username: testuser
password: testuser@123
hikari:
initialization-fail-timeout: 0
jpa:
database-platform: org.hibernate.dialect.MySQL5Dialect
generate-ddl: true
show-sql: true
hibernate:
ddl-auto: create
表 Class 是 Activity.java:
@Entity
@Table(name = "Activity")
@Getter
@Setter
public class Activity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ACT_ID")
private long id;
@Column(name = "NAME")
private final String name;
@Column(name = "DESCR")
private final String descr;
@Column(name = "fitness")
private Boolean fitness;
@Column(name = "nuoto")
private Boolean nuoto;
public Activity() {
this.name = "";
this.descr = "";
}
}
解決了問題在這里:
server:
port: 9001
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://docker-mysql-activity:3306/SCactivity?createDatabaseIfNotExist=true
username: testuser
password: testuser@123
hikari:
initialization-fail-timeout: 0
jpa:
database-platform: org.hibernate.dialect.MySQL5Dialect
generate-ddl: true
show-sql: true
hibernate:
ddl-auto: create
代替
ddl-auto: create
和
ddl-auto:update
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.