Tag: bash

为什么可以使用$()设置环境variables?

这是从Docker文档 – https://docs.docker.com/installation/mac/#install-boot2docker ,为什么可以$()设置环境variables 显示Docker客户端的环境variables。 $ boot2docker shellinit 要在shell中设置环境variables,请执行以下操作: $ $(boot2docker shellinit) 我的问题是:为什么可以用$(boot2docker shellinit)设置环境variables?

如何在Dockerfile中运行读命令?

我有以下的bash脚本命令 read -r -d '' FILECONTENT <<'ENDFILECONTENT' index index.html; location ~ /\.ht { deny all; } ENDFILECONTENT echo "$FILECONTENT" > /etc/nginx/common.conf 我如何改变这个,所以它将在一个Dockerfile中成功运行? 我努力了 ## Common Configuration run read -r -d '' FILECONTENT <<'ENDFILECONTENT' index index.html; location ~ /\.ht { deny all; } ENDFILECONTENT run echo "$FILECONTENT" > /etc/nginx/common.conf 当我做docker build -t ubuntu1404/djangoapp .时,我得到了以下错误docker build -t […]

如何在本地删除docker库的所有标签?

我想本地删除给定docker库上的所有标签。 例如,如果我在一个名为“my_image:latest”和“my_image:sometag”的repo上有两个标签,我想删除这两个标签。 但是,我不想删除“another_image:latest”。

无法在容器中启动seleniumtesting,WebDriverException:Chrome无法启动:exception退出

我的问题是 – 我不能启动容器内的seleniumtesting。 我的docker文件看起来像: FROM selenium/node-chrome EXPOSE 9090 USER root RUN mkdir /code WORKDIR /code ADD requirements_tests.txt /code/ RUN apt-get update RUN apt-get install -y python python-dev python-distribute python-pip RUN pip install -r requirements_tests.txt ADD /selenium_tests HTMLTestRunner.py launch_selenium_tests.py chromedriver /code/ /selenium_tests包含我所有的testing, launch_selenium_tests.py – 它是我的testing启动器。 import time from pyvirtualdisplay import Display import os class SeleniumTestCase(unittest.TestCase): def […]

我怎样才能运行一个不会退出的命令,直到成功?

我有一个运行HBase的Docker容器请参阅这里了解更多关于它的细节。 基本上,HBase大概需要三十年才能活起来。 显然我有其他容器取决于这一个。 在其中之一,在docker-entrypoint.sh我基本上是这样做的: #!/bin/bash /path/to/command argument while [ $? -ne 0 ]; do sleep 2; /path/to/command argument done 这里的问题是/path/to/command是部署一个Web服务器,它将与HBase容器交互。 如果成功,它会阻塞当前进程(这很好,因为它在一个容器中),但是同样,如果失败,它将打印堆栈跟踪,但不会以某个-ne 0代码退出(实际上,根本不退出)。 事实上,如果它退出–restart=always会处理它。 所以,我的问题是,我怎样才能保持它重试,直到成功,基本上没有退出一些失败代码? 从Docker容器退出也是一个选项,以便它可以保持重新启动直到成功。 现在,我没有机会修改不存在的退出代码。 更新: 我必须这样做: #!/bin/bash tmp=$(mktemp) /path/to/command args 2> "$tmp" & while true; do sleep 5; if [ -s "$tmp" ]; then exit fi done 基本上,我必须在后台运行它,以便上面的脚本将继续执行( path/to/command是一个UI阻止命令 – 如listen服务器 – 成功时不会退出 […]

从Dockerfile创buildbash脚本去掉评论

我正在创build一个需要创build一个特定的bash脚本的Docker容器。 我在Dockerfile中使用下面的RUN语句: RUN printf "#!/bin/bash\n \ # This is a bash comment inside the script\ ls -l" > /home/myuser/script.sh 它运作良好,但是由此产生的脚本只是: #!/bin/bash ls -l 所以,最后的文件中缺lessbash注释。 我怀疑是因为Docker认为该行是一个Dockerfile注释,但由于它被包含在双引号内,所以我认为很明显情况并非如此。 当然,我可以通过将整个脚本包含在一行中,或者将其放在一个外部文件中来解决这个问题,但是我认为应该可以在多行中引入bash注释,而不会出现这种问题。 任何解决方法? 我尝试了所有的逃跑,没有成功。

如何在Docker容器中安装/启动docker引擎服务

我正在从jenkins的官方docker集装箱运行jenkins。 我有以下的dockerfile在https://docs.docker.com/engine/installation/linux/debian/ FROM jenkins:2.32.1 # install docker inside this container USER root # Install Docker inside Jenkins RUN apt-get update RUN apt-get purge "docker.io*" RUN apt-get update RUN apt-get install -y apt-transport-https ca-certificates gnupg2 RUN apt-key adv \ –keyserver hkp://ha.pool.sks-keyservers.net:80 \ –recv-keys 58118E89F3A912897C070ADBF76221572C52609D RUN echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list RUN apt-get update RUN […]

如何将命令输出replace为string并将其附加到文件(在Docker中运行的Alpine Linux中)

我正在尝试构build下面的Dockerfile: FROM alpine:latest EXPOSE 9050 9051 RUN apk –update add tor RUN echo "ControlPort 9051" >> /etc/tor/torrc RUN password_hash=$(tor –hash-password "foo") RUN echo "HashedControlPassword $password_hash" >> /etc/tor/torrc CMD ["tor"] 我正在试图添加行HashedControllPassword [pw]到/ etc / tor / torrc,其中[pw]是由命令tor –hash-password "foo" 。 (在本例中,我使用“foo”作为密码)。 如果我使用docker build –tag my_tor .构build图像docker build –tag my_tor . 并使用input命令行 docker run -it my_tor /bin/ash […]

在完成运行后检查非守护程序Docker容器

我有一个我创build的容器 # start docker build -t cdt-tests . docker run -it –name cdt-tests cdt-tests # end => I want to inspect the container filesystem after it's done 因为它没有运行在分离模式下,我怎么检查容器? 我想做的是防止容器“自动closures”,以便在容器完成后检查容器的文件系统。 Dockerfile cdt-tests看起来像: FROM node:6 RUN apt-get update && \ apt-get -y install sudo RUN sudo apt-get -y update RUN sudo apt-get -y upgrade RUN sudo apt-get […]

用一个命令行shell脚本启动多个docker容器(没有docker-compose)

我有3个容器可以在一台服务器上运行,我们将这个容器称为:A,B,C 每个服务器在主机上都有一个脚本,它具有启动docker的命令: A_start.sh B_start.sh C_start.sh 我试图创build一个swarm脚本来启动它们,但不知道如何。 ABC_start.sh 更新:这似乎工作,第一个被输出到terminal,cntrl + C退出他们all.d ./A_start.sh & ./B_start.sh & ./C_start.sh