[英]gitlab ci: mysql build and restore db dump
在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中还原数据库?
初始化一个新实例
当容器启动的第一次,具有指定名称的新数据库将被创建并与所提供的配置变量初始化。 此外,它将执行在/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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.