首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的docker.compose文件不创建我的数据库?

为什么我的docker.compose文件不创建我的数据库?
EN

Stack Overflow用户
提问于 2022-03-18 20:39:16
回答 1查看 176关注 0票数 0

我有一个docker.compose文件,当我启动它时,我希望它用一些表创建一个数据库。

我的码头工:

代码语言:javascript
复制
services:
  mysql:
    image: mysql:latest
    container_name: mysqldb
    cap_add:
      - SYS_NICE # CAP_SYS_NICE
    # container_name: my_very_special_server
    ports:
      - 3307:3306
    environment:
      MYSQL_DATABASE: todo
      MYSQL_ROOT_PASSWORD: password!
      MYSQL_PASSWORD: password!
    volumes:
      - ./DbScripts/DumpTodoOnly.sql:/docker-entrypoint-initdb.d/DumpTodoOnly.sql
      - db_data:/var/lib/mysql
    restart: always
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: dev_pma
    links:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3307
      PMA_ARBITRARY: 1
    restart: always
    ports:
      - 8183:80
  server:
    container_name: server
    build: 
      context: ./BE
      dockerfile: ./Dockerfile.prod
    depends_on:
      - mysql
    environment:
      MYSQL_HOST_IP: mysql
    ports:
      - 4000:4000
    links:
      - mysql
  client:
    container_name: FE
    build: 
      context: ./FE
      dockerfile: ./Dockerfile.prod
    ports:
      - 3000:3000
    environment:
      - CHOKIDAR_USEPOLLING=true
    tty: true
volumes:
  db_data:

项目结构:

实际sql文件:

- MySQL转储10.13下肋8.0.18,用于Win64 (x86_64)

-主机:本地主机数据库: todo

-服务器版本8.0.18

40101集@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /;/!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS /;/!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION /;/!50503 SET NAMES utf8 /;/!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE /;/!40103 SET TIME=‘00:00’/;/!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0 /;/!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0 /;/!40101 SET @OLD_SQL_MODE=@@SQL_MODE,SQL_MODE=‘NO_AUTO_VALUE_ON_0’/;/!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES,SQL_NOTES=0 */;

-表todos的表结构

代码语言:javascript
复制
DROP TABLE IF EXISTS `todos`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `todos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `todotext` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

-表users的表结构

代码语言:javascript
复制
DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `users` (
  `Id` varchar(36) NOT NULL,
  `Email` varchar(200) NOT NULL,
  `Password` binary(60) NOT NULL,
  `ChangedPassword` bit(1) NOT NULL,
  `FirstName` varchar(45) NOT NULL,
  `LastName` varchar(45) NOT NULL,
  `ImageId` varchar(36) DEFAULT NULL,
  `SeqRef` varchar(36) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `Email_UNIQUE` (`Email`),
  UNIQUE KEY `Id_UNIQUE` (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci KEY_BLOCK_SIZE=2;
/*!40101 SET character_set_client = @saved_cs_client */;

-为数据库“todo”转储例程

/*!40103集TIME_ZONE=@OLD_TIME_ZONE */;

40101集CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT /;/!40014集FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS /;/!40014集UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS /;/!40101集COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION /;/!40101集COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION /;/!40101集COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION /;/!40111集SQL_NOTES=@OLD_SQL_NOTES */;

- 2022-03-16 20:30完成倾弃工作

当我跑码头时,我看到了:

在我的php管理中,我没有看到任何用户或todos表:

我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-18 20:51:28

好吧,当你发帖的时候找到答案有点不太好,但是对于那些有类似问题的人来说:

当您运行docker命令时,数据库配置将被存储并重新启动。为了做到这一点,我不得不:

代码语言:javascript
复制
docker-compose down -v

答案找到here

注@Sebastiaan Renkens答复

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71532931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档