in 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 转储文件以便在下一阶段访问它。
开始这部分时,我有例外:
- 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 中恢复数据库?
初始化新实例
首次启动容器时,将创建具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它将执行扩展名为/docker-entrypoint-initdb.d 中的扩展名 .sh、.sql 和 .sql.gz 的文件。文件将按字母顺序执行。您可以通过将 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>