等效于通过入口点初始化数据库的复制命令

时间:2019-05-22 12:49:59

标签: docker docker-compose

相当于在docker-compose.yml文件中指定数据库的架构。

数据库/ Dockerfile

FROM mysql:5.7

COPY ./schema.sql /docker-entrypoint-initdb.d/

docker-compose.yml

services:
  database:
    image: "mysql:5.7"
    container_name: "mysql"
    ports:
      - "6603:3306"

尝试

我尝试了以下方法。有可能吗?

version: '3'

services:
  database:
    image: "mysql:5.7"
    container_name: "mysql"
    ports:
      - "6603:3306"
    command: --init-file /database/schema.sql
      volumes:
        - ./init.sql:/database/schema.sql

1 个答案:

答案 0 :(得分:1)

因此,您在主机文件系统上的某个位置有schema.sql,我们假设它位于./database/schema.sql上。然后,您应该有一个这样的撰写文件:

version: '3'

services:
  database:
    image: "mysql:5.7"
    container_name: "mysql"
    ports:
    - "6603:3306"
    volumes:
    - ./database/schema.sql:/docker-entrypoint-initdb.d/init.sql

此图像不支持任何--init-file命令。相反,它接受放在目录/docker-entrypoint-initdb.d下的初始化脚本。