我最近尝试从链接的docker容器中运行一个cron作业并遇到问题.我的主docker容器链接到postgres容器,其端口号在创建容器时由docker设置为环境变量.此环境变量未在〜/ .profile或运行我的cron作业时可以加载的任何其他源文件中设置.那我怎样才能从我的cron作业中访问这些环境变量?
谢谢!
我有一个Docker容器,我安装了我的Python工具,包括我的Luigi管道接口.我想运行一个shell脚本,它使用cron每周启动我的Luigi管道.
我尝试过高低,让cron在Docker容器中工作.在我的生活中,我不能让我的crontab -e文件运行.
在我的档案中,我有:
0 0 * * Sun /data/myscript.sh
接着是一条新线.Cron正在后台运行- ps aux | grep cron节目/usr/sbin/cron正在运行.此外,在我的/var/log/syslog文件中,我有:
/USR/SBIN/CRON[2037]: (root) CMD (/data/myscript.sh)
我也试过用 0 0 * * Sun . /root/.bashrc ; sh /data/myscript.sh
但是,我的脚本没有运行(当我手动运行脚本时bash myscript.sh,我得到了预期的结果).
建议?
当使用CMD ["python3", "./mycode.py"].
现在,我想要的是每分钟运行该 python 代码。
之前的 Dockerfile(只需运行一次):
FROM python:3.7
RUN apt-get update && \
apt-get install cron -y
RUN pip3 install requests
RUN head -n -1 /etc/ssl/openssl.cnf > /etc/ssl/temp && \
mv /etc/ssl/temp /etc/ssl/openssl.cnf
RUN echo "CipherString=DEFAULT@SECLEVEL=1" >> /etc/ssl/openssl.cnf
COPY . /app
WORKDIR /app
CMD ["python3", "./mycode.py"]
Run Code Online (Sandbox Code Playgroud)
之后的 Dockerfile(使用 crontab 每分钟运行一次):
FROM python:3.7
RUN apt-get update && \
apt-get install cron -y
RUN pip3 install requests
RUN head -n -1 /etc/ssl/openssl.cnf > /etc/ssl/temp && \
mv /etc/ssl/temp …Run Code Online (Sandbox Code Playgroud)