在bash文件中运行docker命令并使用crontab运行

时间:2018-02-05 05:51:46

标签: bash docker cron

def seat():
    print("select your seat")
    import numpy as np
    a = np.arange(100).reshape(10, 10)
    print(a)
    l1=input("enter row number:")
    l1=int(l1)
    l=l1-1
    n1=input("enter the from column number:")
    n1=int(n1)
    n=n1-1
    p1=input("enter the to column number:")
    p1=int(p1)
    p=p1+1
    b=a[l:, n:p]
    k=b.size
    print("you have booked "+str(k)+"tickets")

    for element in b.flat:
        print("your ticket numbers are:"+ str(element))



    if a.size==0:
        print("there are no tickets left")
    return k;

上面的代码是我的bash文件。 这里有两个命令

  1. 创建txt文件
  2. 执行docker container
  3. 如果我运行此命令

    #!/bin/bash
    
    docker exec -ti erpnext sh -c "cd /home/frappe/frappe-bench/ &&
    /usr/local/bin/bench backup"
    
    echo 'Hello, world.' >foo.txt
    

    在终端然后它正在工作

    但是当我在crontab中运行时

    cd /home/arifur/workspace_python/erpdatabasebackup && bash backup_database.sh
    

    然后只创建了txt文件,但是docker容器没有工作。

1 个答案:

答案 0 :(得分:4)

-ti请求使用伪tty并以交互模式运行,但cron不会附加到任何TTY。尝试删除

中的-ti
docker exec erpnext sh -c "cd /home/frappe/frappe-bench/ && /usr/local/bin/bench backup"