Tag: shell

如何检查Docker是否安装在Unix shell脚本中?

我需要检查一个shell脚本是否安装了Docker(Ubuntu服务器)。 我想出了这个,但语法不正确。 if [[ which docker && docker –version ]]; then echo "Update docker" # command else echo "Install docker" # command fi 我也试过, if [ which docker ] && [ docker –version ]; then if [ which docker ] && [ docker –version ]; then

将python for循环的一次迭代输出到另一个脚本

for循环的每个实例都会吐出一个二进制文件的内容,该文件应该被另一个脚本捕获以进一步处理。 例如: script1.py filename = glob.glob('*.txt') for i in range(len(filename)): with open(filename[i], 'rb') as g: sys.stdout.write(g.read()) script2.py from subprocess import call script = "cat > test.fil" call(script,shell=True) 命令: python script1.py | python script2.py 如果我执行这个命令,它将等待所有迭代完成,然后将输出pipe道输出到script2.py。 我希望这是分批进行的。 例如,一旦将一个二进制文件的数据推送到标准输出,启动script2.py。 script2.py不能从script1.py中调用。 这两个脚本需要在不同的docker容器中运行 。 最好避免在Docker容器中安装docker。

Docker RUN语句(修改文件)不执行

执行Dockerfile时,我遇到了奇怪的行为(在https://github.com/Krijger/es-nagios-docker )。 基本上,我添加一个文件来追加它的内容到图像中的文件 ADD es-command /tmp/ RUN cat tmp/es-command >> /opt/nagios/etc/objects/commands.cfg 问题是,当/ tmp / es-command存在于结果图像中时, commands.cfg文件没有改变。 作为接受答案的前奏:我的Dockerfile扩展了cpuguy83 / nagios ,它将/ opt / nagios / etc定义为一个卷。

从PHP启动Docker容器

当我尝试通过PHP启动Docker容器时,出现以下错误 level="fatal" msg="Get http:///var/run/docker.sock/v1.16/containers/json?limit=1: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?" 我尝试通过shell_exec执行docker run命令,因此Ubuntu 14.04上的执行用户是www-data。 对于好的措施,我试图运行docker命令作为sudo,但没有任何区别。 search“您正在尝试….”出现几个链接,可能有一些相关的信息 – 例如在这里 – 但我还没有能够很好地理解它。 也是为了好的措施,我输出docker comamnd我试图执行stderr,复制它并通过SSH直接执行它。 这是命令 docker run -h user118 -d -p 8406:443 -v /var/docks/user118/logs:/var/log/apache2 -v /var/docks/user118/mysql:/var/lib/mysql -v /var/docks/user118/redis:/var/lib/redis -v /var/docks/user118/secure:/var/secure -v /var/docks/user118/site:/var/www/html lamp 其次是 docker ps -a 然后浏览到该容器 […]

Docker:https的wget不起作用

在我的docker文件中我有下面的命令 RUN wget -o test.jar https://bintray.com/artifact/download/thesamet/maven/gerrit-saml-plugin-2.11.4-2.jar 但在构build我得到以下错误: The command '/bin/sh -c wget -o test.jar https://bintray.com/artifact/download/thesamet/maven/gerrit-saml-plugin-2.11.4-2.jar' returned a non-zero code: 8 我试过–no-check-certificate和-U但得到相同的错误。

在分离模式下运行docker时设置环境variables

如果我在/root/.bashrc中包含以下行: export $A = "AAA" 那么当我以交互模式(docker run -i)运行Docker容器时,$ Avariables保持其值。 但是,如果我以分离模式运行容器,我不能访问该variables。 即使我运行明确的源代码.bashrc的容器 docker run -d my_image /bin/bash -c "cd /root && source .bashrc && echo $A" 这样的行产生一个空的输出。 那么,为什么会这样呢? 我怎样才能设置.bashrc文件中定义的环境variables? 任何帮助将非常感激!

在脚本中使用鱼壳function

我有一堆shell脚本,第一个是安装stream行的鱼壳。 一旦这一步完成,我复制一个functions/目录到适当的位置。 然后我想使用spin函数来调用每个脚本,并显示一个微调,而每个脚本正在执行。 然而,当我通过初始安装鱼和configuration后,我无法使用函数,即spin <command> command not found 。 注意这是发生在一个临时docker集装箱内进行testing。 任何指针或帮助,将不胜感激。

即使testing失败,TravisCI构build也能成功

这是我在travis.yml运行我的testing的travis.yml : # Run tests script: # Test application in Docker container – ./tools/docker-test.sh shell脚本docker-test.sh看起来像这样: #!/usr/bin/env bash githash="$(git rev-parse –short HEAD)" echo "————————————————-" echo "| Running unit tests |" echo "————————————————-" docker create -it –name test eu.gcr.io/test/test:$githash docker start test docker exec test /bin/sh -c "go test ./…" docker stop test docker rm -fv test […]

如何有bash脚本回答交互式提示(没有y / n只)?

我正在尝试使用名为PHPCI的工具来构build一个Docker镜像。 我几乎能够做所有事情,但是当我需要运行创build数据库的设置脚本,设置用户名/密码,以及为工具本身进行某种默认configuration时,出现了第一个问题。 该脚本应该被称为( 见这里 – 从Composer安装): php ./console phpci:install 它会开始提出一些问题。 这是一个被问到的问题的完整例子: ****************** Welcome to PHPCI ****************** Checking requirements… OK Please answer the following questions: ————————————- Please enter your MySQL host [localhost]: Please enter your MySQL database name [phpci]: Please enter your MySQL username [phpci]: Please enter your MySQL password: Your PHPCI URL ("http://phpci.local" for example): […]

为什么Perl ENV哈希中缺less一些条目

当我访问应该在%ENV散列中定义的variables时,Perl给了我一个undef值。 这怎么可能? root@23cd5f45def7:~/bin$ perl -e 'warn $ENV{SHELL}' Warning: something's wrong at -e line 1. 我希望perl输出/ bin / bash 。 更多关于环境的信息: root@23cd5f45def7:~/bin$ echo $SHELL /bin/bash root@23cd5f45def7:~/bin$ $SHELL –version GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2011 Free Software Foundation, Inc. … root@23cd5f45def7:~/bin$ perl -v This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi […]