在gitlab.yml我有
mysql_build:
stage: build
variables:
MYSQL_DATABASE: rates
MYSQL_ROOT_PASSWORD: root
services:
- mysql:latest
image: mysql
before_script:
- mysql --version
script:
- echo "SELECT 'OK';" | mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" --host=mysql "${MYSQL_DATABASE}"
- mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" rates < db/rates_db.sql
它是成功安装mysql,但我想恢复sql dump文件以便在下一阶段访问它。
启动这部分时,我有例外:
- mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" rates < db/rates_db.sql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
真实应用程序位于此处
https://gitlab.com/armdev/exchange-rates
如何在mysql中恢复db?
答案 0 :(得分:2)
初始化新实例
首次启动容器时,将创建具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它将执行扩展名为.sh,.sql和.sql.gz的文件,这些文件位于/docker-entrypoint-initdb.d中。文件将按字母顺序执行。您可以通过将SQL转储装入该目录并使用提供的数据提供自定义映像来轻松填充您的mysql服务。默认情况下,SQL文件将导入到MYSQL_DATABASE变量指定的数据库中。
试试这个
Dockerfile
FROM mysql
ENV MYSQL_DATABASE rates
ENV MYSQL_ROOT_PASSWORD root
COPY db/rates_db.sql /docker-entrypoint-initdb.d/
替换为gitlab-ci.yml
mysql_build:
stage: build
script:
- docker build . -t <Image name>