docker-compose mysql init sql未执行

我正在尝试设置一个mysql docker容器并执行init sql脚本。不幸的是SQL脚本没有执行。我究竟做错了什么?

version: '3.3'

services:

api:

container_name: 'api'

build: './api'

ports:

- target: 8080

published: 8888

protocol: tcp

mode: host

volumes:

- './api:/go/src/app'

depends_on:

- 'mysql'

mysql:

image: 'mysql:latest'

container_name: 'mysql'

volumes:

- ./db_data:/var/lib/mysql:rw

- ./database/init.sql:/docker-entrypoint-initdb.d/init.sql:ro

restart: always

environment:

MYSQL_USER: test

MYSQL_PASSWORD: test

MYSQL_ROOT_PASSWORD: test

MYSQL_DATABASE: test

ports:

- '3306:3306'

volumes:

db_data:

我执行文件 docker-compose up -d --build

回答:

许多容器化的应用程序,尤其是有状态的应用程序,都有一种运行init脚本的方式(例如此处的sql脚本), 它们只能运行 一次

并且由于它们是有状态的,因此对于容器是否init在容器重新启动时运行脚本而言,卷是事实的来源。

与您的情况类似,删除用于绑定安装的文件夹或使用新的命名卷应重新运行init存在的所有脚本。

以上是 docker-compose mysql init sql未执行 的全部内容, 来源链接: utcz.com/qa/430438.html

回到顶部