从gitlab-ci创建MySQL数据库备份

时间:2019-07-15 09:11:27

标签: java mysql spring-boot gitlab gitlab-ci

我有一个Spring Boot应用程序推送到gitlab,并且我正在尝试编写一个脚本,以使用gitlab-ci.yml将此应用程序部署到远程服务器。以下是文件的内容:

image: maven:3-jdk-8

services:
    - docker:dind

## Path to store maven dependencies
cache:
    paths:
        - .m2/

stages:
    - build
    - deploy

build:
    stage: build
    # script to test and create war file - app.war

deploy:
    stage: deploy
    dependencies:
        - build
    script:
        - "#!/bin/sh"
        - chmod og= $PRODUCTION_SERVER_PASSWORD
        - scp -i "$PRODUCTION_SERVER_PASSWORD" -o StrictHostKeyChecking=no target/app.war $PRODUCTION_SERVER_USER@$PRODUCTION_SERVER:/home/ubuntu/wars
        - ssh -i "$PRODUCTION_SERVER_PASSWORD" -o StrictHostKeyChecking=no $PRODUCTION_SERVER_USER@$PRODUCTION_SERVER mysqldump -u ubuntu -p$MYSQL_PASSWORD app > /home/ubuntu/dumps/app.sql;
        # rest of the script to deploy the application
    environment:
        name: production
        url: <server-url>
    when: manual

在部署之前,我试图将现有数据库app的备份放入文件app.sql中。但是当我触发deploy阶段时,它在行上失败

- ssh -i "$PRODUCTION_SERVER_PASSWORD" -o StrictHostKeyChecking=no $PRODUCTION_SERVER_USER@$PRODUCTION_SERVER mysqldump -u ubuntu -p$MYSQL_PASSWORD app > /home/ubuntu/dumps/app.sql;

该错误表示类似这样的内容:

  

/ bin / bash:第95行:/home/ubuntu/dumps/app.sql:否   这样的文件或目录

当然,目前没有这样的文件app.sql。但是,目录/home/ubuntu/dumps存在,并且我试图在此目录中创建此文件app.sql。当我直接在服务器上运行mysqldump时,它可以正常工作,但会导致gitlab-ci错误。任何有关如何进行数据库备份的想法/指针将不胜感激。谢谢。

0 个答案:

没有答案