Tag: bash

如何在入口点等待postgres的启动?

ENTRYPOINT之前,等待postgres在我的ENTRYPOINT内完全启动的最佳方法是什么? 现在我已经在我的机器上启动了大约50秒的时间。 所以我只睡了60秒 这不太好,因为在另一台机器上运行时,这可能不起作用。 ENTRYPOINT \ runuser -l postgres -c '/usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file=/etc/postgresql/9.3/main/postgresql.conf & ' && \ sleep 60 && \ nosetests –verbose –cover-erase –with-coverage –cover-package=stalker 这是启动postgres的输出: 2017-02-13 13:46:49.541 UTC [9] LOG: database system was interrupted; last known up at 2017-02-13 12:53:23 UTC 2017-02-13 13:47:37.951 UTC [9] LOG: database system was not properly […]

Bash大括号扩展不能在Dockerfile RUN命令上工作

我在Dockerfile中运行以下RUN命令,期望在每个列出的子目录下创build一个“logs”目录: RUN mkdir -p /opt/seagull/{diameter-env,h248-env,http-env,msrp-env,octcap-env,radius-env,sip-env,synchro-env,xcap-env}/logs 但是,当我检查图像时,我看到一个字面上的名字叫做“{diameter-env,h248-env,http-env,msrp-env,octcap-env,radius-env,sip-env,synchro-env,xcap-env }“/ opt / seagull下创build,而不是扩展支撑。 我可能做错了什么?

Docker在docker上的主机运行脚本 – 组成

感谢您收看这个问题。 所以我的问题涉及如何在docker-up命令上运行脚本的最佳实践。 目前,我在主机和容器之间共享一个卷,以允许脚本更改对主机和容器都可见。 类似于观察脚本轮询configuration文件的更改。 脚本必须根据预定义的规则在主机上进行更改。 所以我的问题是: 我怎么能在docker上创build这个脚本 – 组成up指令,甚至是从服务的dockerfile开始,这样,只要容器上去了,“观察者”就可以find正在写入和写入的任何变化。 有问题的容器将永远运行在debian / ubuntu操作系统上,并且应该独立于架构,这意味着它也应该能够在ARM上运行。 提前致谢 我也想知道,为什么这个问题只是因为有些人不明白而被低估了。 我希望在主机上运行脚本,而不是在容器内部运行。我需要主机更改其networking接口configuration,以便轻松适应任何环境。主机需要更改我重复一次。这应该对用户是无缝的,并且很容易在运行的Web界面上编辑,以适应新的环境。 我目前正在基于crontab的主机上运行脚本。 我只想知道如何在INSIDE CONTAINER上运行HOST脚本的最佳实践和示例,这样安装操作员就可以轻松地运行docker-compose。 谢谢

如何运行与docker集装箱的nginx?

我试图在我的docker容器中安装nginx,然后安装我想运行 docker run -i -t base /bin/bash命令,但是我得到了这样的错误 警告:在resolv.conf和容器中find的本地(127.0.0.1)DNSparsing程序不能使用它。 使用默认外部服务器:[8.8.8.8 8.8.4.4] [错误] client.go:2298错误获取大小:错误的文件描述符 我如何解决这个问题?

从bash运行Boot2Docker

我在我的Mac上安装了Boot2Docker。 通过点击应用程序图标,打开一个terminal窗口,运行一些bash脚本来准备docker虚拟机,然后你就可以走了。 我的问题是,我想编写一个bash脚本来运行Boot2Docker虚拟机,然后运行一些泊坞窗的命令。 沿线的东西: #!/usr/bin/env bash boot2docker start # WHAT SHOULD GO HERE? docker run -it –rm -p 8888:8888 –name {name} -v /src:/src image 当我点击应用程序图标时采取了哪些步骤,以便我可以手动在我的bash脚本中准备Boot2Docker?

使用shell脚本在Docker容器内运行脚本

我是新来的Docker技术,我正在尝试创build一个shell脚本来设置一个docker容器,我的脚本文件看起来像下面 #!bin/bash docker run -t -i -p 5902:5902 –name "mycontainer" –privileged myImage:new /bin/bash 运行这个脚本文件将在一个新调用的bash中运行容器。 现在我需要运行一个脚本文件(test.sh),它已经在上面给出的shell脚本的容器里了(例如:cd /path/to/test.sh && ./test.sh)请问怎么做随意问,如果情况不明确。

通过图像名称停止Docker容器,如果没有容器正在运行,请不要错误

这个问题解释了如何停止从映像启动的Docker容器。 但是,如果没有正在运行的容器,我得到的错误docker停止需要至less一个参数 。 这意味着我不能在一个很长的.sh脚本中运行这个命令而不会中断。 即使没有find结果,我如何更改这些命令来工作? docker stop $(docker ps -q –filter ancestor="imagname") docker rm `docker ps -aq` && (我正在寻找一个纯粹的Docker答案,如果可能的话,不是一个bashtesting,因为我通过SSH运行我的脚本,所以我不认为我有权访问正常的脚本testing)

docker exec命令的结果

我需要在我的shell脚本中知道一些docker exec命令的输出,例如我有一个nginx容器,并在我的脚本中运行: docker exec -it containerName /etc/init.d/nginx configtest 我只想在nginxconfigurationtesting成功时才继续执行脚本执行,而不是失败。 我试过使用$? ,但是即使在configtest输出失败的情况下也是0 (因为docker exec被成功执行,据我所知)。

Docker:RUN touch不会创build文件

在尝试debuggingDockerfile中的RUN语句时,我试图将输出redirect到绑定卷( ./mongo/log )中的文件。 令我惊讶的是,我无法通过RUN命令创build文件,或者使用redirect/附加( > , >> )操作符将另一个命令的输出传送到文件。 然而,我可以通过docker exec -ti mycontainer /bin/shlogin正在运行的容器并从那里发出命令来执行上述任务。 为什么会发生这种行为? 如何将Dockerfile / redirect输出中的文件与文件或运行Dockerfile的控制台联系起来? 这是我的Dockerfile: FROM mongo:3.4 #Installing NodeJS RUN apt-get update && \ apt-get install -y curl && \ curl -sL https://deb.nodesource.com/setup_6.x | bash – && \ apt-get install -y nodejs #Setting Up Mongo WORKDIR /var/www/smq COPY ./mongo-setup.js mongo-setup.js ##for testing […]

Docker容器无法看到串口设备

我正在尝试运行一个docker容器,以访问主机中的“serialport”。 这是我做的: 我使用MAC 在主机上安装驱动程序( http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41 ) 插入设备 运行返回/dev/tty.usbserial ls /dev/t* – 所以它工作 运行容器docker run -it –privileged -v /dev:/dev node:4.4.0 /bin/bash ,然后在容器里面的ls /dev/t*里面没有返回/dev/tty.usbserial设备… 我玩了很多不同的参数的变化,但还没有find工作之一:)另外, – 设备标志不适合我,因为该设备可能会重新连接,名称可能不同于/dev/tty.usbserial