我正在使用Gitlag Server并获得2个gitlab-runner(一个在我的本地,一个在VServer上) - 两者都完美地与echo和简单的东西一起工作,比如用mysql和php构建一个ubuntu服务器
stages:
- dbserver
- deploy
build:
stage: dbserver
image: ubuntu:16.04
services:
- mysql:5.7
- php:7.0
variables:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: test2
script:
- apt-get update -q && apt-get install -qqy --no-install-recommends
mysql-client
- mysql --user=root --password=\"$MYSQL_ROOT_PASSWORD\" --
host=mysql < test.sql
我想现在导入一个数据库,但我不了解它背后的想法或技术。如何导入位于本地PC或服务器上的.sql文件?我是否需要自己创建DOCKERFILE,或者我可以使用gitlab.yml文件来创建它吗?
答案 0 :(得分:0)
您可以使用 scp 将.sql文件复制到跑步者。
您可能需要添加命令来安装openssh-client,例如:
script:
apt-get update -y && apt-get install openssh-client -y
然后在调用mysql之前添加scp行,例如:
- scp user@server:/path/to/file.sql /tmp/temp.sql
- mysql --user=root --password=\"$MYSQL_ROOT_PASSWORD\" --host=mysql < /tmp/temp.sql
答案 1 :(得分:0)
我找到了一个解决方案,它将目录从gitlab-runner机器绑定到我正在使用的实际容器:
sudo nano /etc/gitlab-runner/config.toml
你将卷改为这样的
volumes = ["/home/ubuntu/test:/cache"]
/ home / ubuntu / test 是计算机中的目录, / cache 是容器中的目录
在你这样做之前,我建议停止跑步者然后重新开始